Rusty Conover


Catalyst::View::PHP - Template View Class


    # use the helper view PHP PHP

    # lib/MyApp/View/
    package MyApp::View::PHP;

    use base 'Catalyst::View::PHP';

    # To set the override the PHP include path set the path in the config.
    __PACKAGE__->config->{INCLUDE_PATH} =

    # Meanwhile, maybe in a private C<end> action


This is the Catalyst view class for the PHP::Interpreter. Your application subclass should inherit from this class. This plugin renders the template specified in $c->stash->{template}, or failing that, $c->request->match. The template variables are set up from the contents of $c->stash, augmented with template variable base set to Catalyst's $c->req->base, template variable c to Catalyst's $c, and template variable name to Catalyst's $c->config->{name}. The output is stored in $c->response->output.

If you want to override PHP config settings, you can do it in your application's view class by setting __PACKAGE__->config->{OPTION}, as shown in the Synopsis. See the available options document on the PHP::Interpreter documentation.

In PHP the variables exported are the requests parameters for $_GET and $_POST depending on the method used to send the request. Also all of the stash is exported just like in TemplateToolkit, and you can access the current context by calling $c.

For example to read the CGI parameter 'test' you can use:



print $c->request->parameters['test']

Or to get the method of the request try:

print $c->request->method


There are probably a few as this module is very new along with PHP::Interpreter being very new. Feel free to discuss this module on the Catalyst mailing list

This module has been tested with PHP 5.1.0RC1 (cli).



The constructor for the PHP view. Sets up the template provider, and reads the application config.


Renders the template specified in $c->stash->{template} or $c->request->match. Template variables are set up from the contents of $c->stash, augmented with base set to $c->req->base, c to $c and name to $c->config->{name}. Output is stored in $c->response->output.

Being that there is no clear way to reset the interpreter between requests, each request is processed in a new interpreter instance. As PHP::Interpreter matures this may change.


This allows your view subclass to pass additional settings to the PHP config hash.


Catalyst, PHP::Interpreter,


Rusty Conover,

Based off of Catalyst::View::TT by:

Sebastian Riedel, Marcus Ramberg, Jesse Sheidlower,


Copyright (c) 2005 InfoGears, Inc. All Rights Reserved.

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.