CGI-Builder
view release on metacpan or search on metacpan
lib/CGI/Builder.pm view on Meta::CPAN
; defined $p && length $p || croak 'No page_name name passed, died'
; $s->page_name($p)
; $s->PHASE(SWITCH_HANDLER)
; my $shm = $s->switch_handler_map
; my $SH = $$shm{$p} || $s->can("SH_$p")
; $s->$SH(@_) if $SH
; if ($s->PHASE < PRE_PAGE)
{ $s->PHASE(PRE_PAGE)
; $s->$exec('pre_page')
}
; if ($s->PHASE < PAGE_HANDLER)
{ $s->PHASE(PAGE_HANDLER)
; my $phm = $s->page_handler_map
; my $PH = $$phm{$p} || $s->can("PH_$p")
|| ! $s->page_content_check
&& ($$phm{AUTOLOAD} || $s->can('PH_AUTOLOAD'))
; $s->$PH(@_) if $PH
}
}
; sub get_page_name
{ my $s = shift
; my $p = $s->cgi->param($s->cgi_page_param)
; $s->page_name($p) if defined($p) && length($p)
}
; sub page_content_check
{ length $_[0]->page_content
}
; sub send_header
{ print $_[0]->cgi->header( %{$_[0]->header} )
}
; sub send_content
{ my $pc = $_[0]->page_content
; if ( ref $pc eq 'CODE' )
{ $_[0]->$pc
}
elsif ( ref $pc eq 'SCALAR' )
{ print $$pc
}
elsif ( not ref $pc )
{ print $pc
}
}
; sub redirect
{ my ($s, $url) = @_
; $s->PHASE < GET_PAGE && croak 'Too early to call redirect(), died'
; $s->PHASE > RESPONSE && croak 'Too late to call redirect(), died'
; defined $url && length $url || croak 'No URL passed, died'
; $s->PHASE(REDIR)
; $s->header(-url => $url)
; print $s->cgi->redirect( %{$s->header} )
}
; sub die_handler
{ my ( $s, $msg ) = @_
; for ( my $i = 1
; my $sub = (caller($i))[3]
; $i++
)
{ die $msg if $sub eq '(eval)' && (caller($i+1))[3]
}
; die sprintf 'Fatal error in phase %s for page "%s": %s'
, $s->phase
, $s->page_name
, $msg
}
; 1
__END__
=pod
=head1 NAME
CGI::Builder - Framework to build simple or complex web-apps
=head1 VERSION 1.36
Included in CGI-Builder 1.36 distribution.
The latest versions changes are reported in the F<Changes> file in this distribution.
=head1 INSTALLATION
=over
=item Prerequisites
Perl version >= 5.6.1
OOTools >= 2.1
IO::Util >= 1.46
=item CPAN
perl -MCPAN -e 'install CGI::Builder'
You have also the possibility to use the Bundle to install all the extensions and prerequisites of the CBF in just one step. Please, notice that the Bundle will install A LOT of modules that you might not need, so use it specially if you want to exte...
perl -MCPAN -e 'install Bundle::CGI::Builder::Complete'
=item Standard installation
From the directory where this file is located, type:
perl Makefile.PL
make
make test
make install
=back
=head1 SYNOPSIS
# define your build
use CGI::Builder
qw| CGI::Builder::AnyExtension
AnySuperClass
|;
( run in 1.400 second using v1.01-cache-2.11-cpan-97f6503c9c8 )