What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Эта глава является продолжением базовой установки; пожалуйста, сперва прочитайте её.
Немного более гибким способом установки Smarty является наследование класса и инициализация вашего собственного окружения Smarty. Таким образом, вместо того, чтобы постоянно устанавливать пути директорий, присваивать одни и те же переменные и т.д., мы можем всё это сделать в одном месте.
Давайте создадим новую директорию /php/includes/guestbook/
,а в ней -
новый файл, который назовем setup.php
. По условиям
нашего примера, /php/includes
находится в include_path
. Убедитесь, чтобы
то же самое было и у вас, или используетй абсолютные пути.
Example 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
:
Example 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
, который автоматически
инициализирует все настройки для нашего приложения.