Расширенная установка
Эта глава является продолжением базовой установки; пожалуйста,
сперва прочитайте её.
Немного более гибким способом установки Smarty является
наследование класса
и инициализация вашего собственного окружения Smarty. Таким образом, вместо
того, чтобы постоянно устанавливать пути директорий, присваивать одни и те
же переменные и т.д., мы можем всё это сделать в одном месте.
Давайте создадим новую директорию /php/includes/guestbook/,а в ней -
новый файл, который назовем setup.php. По условиям
нашего примера, /php/includes
находится в include_path. Убедитесь, чтобы
то же самое было и у вас, или используетй абсолютные пути.
Пример 2-10. /php/includes/guestbook/setup.php
<?php
// загружаем библиотеку Smarty require('Smarty.class.php');
// Файл setup.php - это хорошее место для // подключения библиотечных файлов вашего приложения, // вы можете сделать это прямо здесь. Пример: // require('guestbook/guestbook.lib.php');
class Smarty_GuestBook extends Smarty {
function Smarty_GuestBook() {
// Конструктор класса. // Он автоматически вызывается при создании нового экземпляра.
$this->Smarty();
$this->template_dir = '/web/www.example.com/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/guestbook/cache/';
$this->caching = true; $this->assign('app_name', 'Guest Book'); }
} ?>
|
|
Теперь давайте изменим index.php,
чтобы он использовал setup.php:
Пример 2-11. /web/www.example.com/guestbook/htdocs/index.php
<?php
require('guestbook/setup.php');
$smarty = new Smarty_GuestBook();
$smarty->assign('name','Ned');
$smarty->display('index.tpl'); ?>
|
|
Теперь вы видите, что создать экземпляр Smarty довольно просто - нужно лишь
использовать Smarty_GuestBook, который автоматически
инициализирует все настройки для нашего приложения.