brtriver/phptalserviceprovider

dev-master 2013-05-18 08:56 UTC

This package is not auto-updated.

Last update: 2020-01-01 18:13:07 UTC


README

PHPTAL is one of PHP template engines, which is an implementation of the excellent Zope Page Template (ZPT) system for PHP. And Silex is a PHP microframework, which is very light and is based on Symfony2. This extension allow you to use PHPTAL as a template engine in Silex.

Instllation

the best way to install this service provider is to use composer. as the first, creating composer.json file in your project below:

    {
        "require": {
            "brtriver/PHPTALServiceProvider": "dev-master"
        }
    }

If you also want to install PHPTAL, just added like below:

    {
        "repositories": [
            {
                "type": "package",
                "package": {
                    "name": "pornel/PHPTAL",
                    "version": "1.2.2",
                    "dist": {
                        "url": "http://phptal.org/files/PHPTAL-1.2.2.zip",
                        "type": "zip"
                    },
                    "source": {
                        "url": "https://github.com/pornel/PHPTAL.git",
                        "type": "git",
                        "reference": "Release 1.2.2"
                    }
                }
            }
        ],
        "require": {
            "brtriver/PHPTALServiceProvider": "dev-master",
            "pornel/PHPTAL": "1.2.2"
        }
    }

then install composer.php and install

$ wget http://getcomposer.org/composer.phar
$ php composer.phar install

download PHPTALServiceProvider and set to this directory and finally the path of this is below: ./vendor/brtriver/PHPTALServiceProvider/PHPTALServiceProvider.php

Then PHPTAL library is set to ./vendor/phptal directory and PHPTAL templates is set under views directory.

/project_directory
│  ├── .htaccess
│  ├── silex.phar
│  ├── composer.json
│  ├── composer.phar
│  └── index.php
├── vendor
│   ├── bin
│   ├── brtriver
│   │   └── PHPTALServiceProvider
│   │       └─ PHPTALServiceProvider.php
│   └── pornel
│       └── PHPTAL
└── views
    └── teset.html (PHPTAL template files is set here)

Sample Code

in index.php, you require this PHPTALServiceProvider file and register it, then your code is like below:

index.php

After calling register method, $app['phptal'] is a instance of PHPTAL. You can use it as PHPTAL itself. You have to set a template path first.

<?php
require_once __DIR__.'/silex.phar';
require_once __DIR__.'/vendor/brtriver/PHPTALServiceProvider/PHPTALServiceProvider.php';

use Silex\Provider\PHPTALServiceProvider;

$app = new Silex\Application();
$app['phptal.class_path'] = __DIR__.'/vendor/pornel/PHPTAL';
$app->register(new PHPTALServiceProvider());

$app->get('/hello/{name}', function($name) use($app) {
    // set your view file. view file is set under /views directory
    $app['phptal.view'] = "test.html";
    $app['phptal']->title = "PHPTAL in Silex";
    $app['phptal']->name = $name;
    return $app['phptal']->execute();
});

$app->run();

test.html

<?xml version="1.0"?>
<html>
  <head>
    <title tal:content="title">
      Place for the page title
    </title>
  </head>  <body>
    <h1 tal:content="title">sample title</h1>
    <table>
      <thead>
        <tr>
          <th>Name</th>
        </tr>
      </thead>
      <tbody>
          <tr>
            <td tal:content="name">person's name</td>
          </tr>
          <tr tal:replace="">
            <td>sample name</td>
          </tr>
      </tbody>
    </table>
  </body>
</html>

License

PHPTALExtension is licensed under the MIT license.