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 是 PHP 模板引擎之一,是针对 PHP 的优秀 Zope 页面模板 (ZPT) 系统的实现。而 Silex 是一个 PHP 微框架,非常轻量级,基于 Symfony2。这个扩展允许您在 Silex 中使用 PHPTAL 作为模板引擎。

安装

安装此服务提供者的最佳方式是使用 composer。首先,在您的项目下创建 composer.json 文件

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

如果您还想要安装 PHPTAL,只需添加如下所示

    {
        "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"
        }
    }

然后安装 composer.php 并安装

$ wget https://composer.php.ac.cn/composer.phar
$ php composer.phar install

下载 PHPTALServiceProvider 并将其设置到该目录,最后该路径如下: ./vendor/brtriver/PHPTALServiceProvider/PHPTALServiceProvider.php

然后,将 PHPTAL 库设置到 ./vendor/phptal 目录,并将 PHPTAL 模板设置在 views 目录下。

/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)

示例代码

在 index.php 中,您需要引入此 PHPTALServiceProvider 文件并注册它,然后您的代码如下所示

index.php

调用 register 方法后,$app['phptal'] 是 PHPTAL 的实例。您可以使用它作为 PHPTAL 本身。您必须首先设置模板路径。

<?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>

许可

PHPTALExtension 使用 MIT 许可证。