Smarty Icon
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
Quick Install
This is a simple guide to get Smarty setup and running quickly. The online documentation includes a very thorough explanation of a Smarty installation. This guide is meant to be a quick and to-the-point way of getting Smarty working, and nothing more. The guide assumes you are familiar with the Linux system environment. Windows users will need to make file permission adjustments where necessary, or find a suitable hosting provider.
Install Library Files
Copy the Smarty library files to your system. In our example, we place them in /usr/local/lib/php/Smarty/. If you are using FTP/sFTP for server access, unzip the Smarty files locally and upload them to the proper directory.
command line
$> cd YOUR_DOWNLOAD_DIR $> gtar -zxvf Smarty-3.0.tar.gz $> mkdir /usr/local/lib/php/Smarty $> cp -r Smarty-3.0/libs/* /usr/local/lib/php/Smarty
You should now have the following file structure:
file structure
/usr/local/lib/php/Smarty/ debug.tpl plugins/ Smarty.class.php sysplugins/
Setup Directories
You will need four directories setup for Smarty to work. These files are for templates, compiled templates, cached templates and config files. You may or may not use caching or config files, but it is a good idea to set them up anyways. It is also recommended to place them outside of the web server document root. The web server PHP user will need write access to the cache and compile directories as well.
In our example, the document root is /web/www.example.com/docs and the web server username is «nobody». We will keep our Smarty files under /web/www.example.com/smarty/. If you are using FTP/sFTP, your FTP software should help you with setting the file permissions. 775 means user/group = read/write, other = read.
command line
$> cd /web/www.example.com $> mkdir smarty $> mkdir smarty/templates $> mkdir smarty/templates_c $> mkdir smarty/cache $> mkdir smarty/configs $> chown nobody:nobody smarty/templates_c $> chown nobody:nobody smarty/cache $> chmod 775 smarty/templates_c $> chmod 775 smarty/cache
Configure Scripts
Now we setup our application in the document root:
command line
$> cd /web/www.example.com/docs $> mkdir myapp $> cd myapp $> vi index.php
Edit the index.php file to look like the following:
PHP
setTemplateDir('/web/www.example.com/smarty/templates'); $smarty->setCompileDir('/web/www.example.com/smarty/templates_c'); $smarty->setCacheDir('/web/www.example.com/smarty/cache'); $smarty->setConfigDir('/web/www.example.com/smarty/configs'); $smarty->assign('name', 'Ned'); $smarty->display('index.tpl'); ?>
Create Template
command line
$> nano /web/www.example.com/smarty/templates/index.tpl
Edit the index.tpl file with the following:
index.tpl
Smarty Hello, !
Now go to your new application through the web browser, http://www.example.com/myapp/index.php in our example. You should see the text «Hello Ned!» in your browser.
If you have any problems, you may want to run the Smarty Test Utility to be certain all files and folders are in place and have the correct permissions.
PHP
$smarty->testInstall();
Once you get things working, you can continue on to the Crash Course to learn a few more simple things, or on to the documentation to learn it all.
Smarty Icon
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
| Chapter 2. Установка | ||
|---|---|---|
| Prev | Part I. Приступая к работе | Next |
Chapter 2. Установка
Table of Contents
Требования
Для установки и работы Smarty необходим веб-сервер с установленным PHP версии 4.0.6 или выше.
| Prev | Up | Next |
| Chapter 1. Что такое Smarty? | Home | Базовая установка |
Smarty Icon
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
| Расширенная установка | ||
|---|---|---|
| Prev | Chapter 2. Установка | Next |
Расширенная установка
Эта глава является продолжением базовой установки; пожалуйста, сперва прочитайте её.
Немного более гибким способом установки Smarty является наследование класса и инициализация вашего собственного окружения Smarty. Таким образом, вместо того, чтобы постоянно устанавливать пути директорий, присваивать одни и те же переменные и т.д., мы можем всё это сделать в одном месте.
Давайте создадим новую директорию /php/includes/guestbook/ ,а в ней — новый файл, который назовем setup.php . По условиям нашего примера, /php/includes находится в include_path . Убедитесь, чтобы то же самое было и у вас, или используетй абсолютные пути.
Example 2.10. /php/includes/guestbook/setup.php
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
assign('name','Ned'); $smarty->display('index.tpl'); ?>
Теперь вы видите, что создать экземпляр Smarty довольно просто — нужно лишь использовать Smarty_GuestBook , который автоматически инициализирует все настройки для нашего приложения.
| Prev | Up | Next |
| Базовая установка | Home | Part II. Smarty для дизайнеров шаблонов |
Smarty Icon
You may use the Smarty logo according to the trademark notice. For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
| Базовая установка | ||
|---|---|---|
| Prev | Chapter 2. Установка | Next |
Базовая установка
Скопируйте файлы Smarty, которые находятся в субдиректории /libs/ дистрибутива. Редактировать эти PHP-файлы НЕ СЛЕДУЕТ. Они должны использоваться всеми приложениями и изменяться только при обновлении Smarty до новой версии. В следующих примерах архив с исходным кодом Smarty был распакован в
- /usr/local/lib/Smarty-v.e.r/ для машин под *nix
- и c:\webroot\libs\Smarty-v.e.r\ для машин под Windows.
Example 2.1. Необходимые файлы библиотеки Smarty
Smarty-v.e.r/ libs/ Smarty.class.php Smarty_Compiler.class.php Config_File.class.php debug.tpl internals/*.php (все файлы) plugins/*.php (все файлы)
Smarty использует константу PHP SMARTY_DIR , которая указывает полный путь к директории libs/ из Smarty. Обычно, если ваше приложение может найти файл Smarty.class.php , то нет необходимости устанавливать SMARTY_DIR — Smarty сам во всём разберётся. Однако, если Smarty.class.php не может быть найден в вашем include_path или вы не указывали абсолютный путь к нему в приложении, то вы должны определить SMARTY_DIR вручную. SMARTY_DIR должна включать завершающий слэш .
Вот как следует создавать экземпляр объекта Smarty в ваших PHP-скриптах:
Попробуйте выполнить вышеуказанный код. Если Вы получаете ошибку о том, что Smarty.class.php не найден, попробуйте следующие варианты действий:
Example 2.2. Ручная установка константы SMARTY_DIR
Example 2.3. Передача абсолютного пути к файлам библиотеки
Example 2.4. Добавление библиотеки в путь в файле php.ini
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; *nix: "/path1:/path2" include_path = ".:/usr/share/php:/usr/local/lib/Smarty-v.e.r/libs/" ; Windows: "\path1;\path2" include_path = ".;c:\php\includes;c:\webroot\libs\Smarty-v.e.r\libs\"
Example 2.5. Дописывание include_path из PHP-скрипта используя ini_set()
Теперь, когда все файлы находятся на своих местах, пришло время установки директорий Smarty в вашем приложении.
- Smarty нужно четыре директории, которые по умолчанию называются templates/ , templates_c/ , configs/ и cache/
- Каждая из них определяется свойствами класса Smarty: $template_dir , $compile_dir , $config_dir и $cache_dir соответственно. Настойчиво рекомендуется использовать разные наборы этих директорий для каждого приложения, использующего Smarty.
В нашем примере мы будем устанавливать Smarty для некоторой гостевой книги. Приложение было выбрано только для того, чтобы использовать его имя в именах директорий. Вы можете использовать те же настройки с любым другим приложением, просто меняя guestbook/ на имя вашего приложения.
Example 2.6. Вот как выглядит файловая структура
/usr/local/lib/Smarty-v.e.r/libs/ Smarty.class.php Smarty_Compiler.class.php Config_File.class.php debug.tpl internals/*.php plugins/*.php /web/www.example.com/ guestbook/ templates/ index.tpl templates_c/ configs/ cache/ htdocs/ index.php
Убедитесь, что вы знаете расположение корневой директории документов вашего веб-сервера. В следующих примерах, корневой директорией документов является /web/www.example.com/guestbook/htdocs/ . Доступ к директориям Smarty происходит только из библиотеки Smarty и никогда не происходит через веб-браузер. Поэтому, в целях безопасности рекоммендуется располагать эти директории за пределами корневой директории документов сервера, хотя это и не обязательно.
Вам понадобиться как минимум один файл внутри корневой директории документов — это скрипт, вызываемый веб-браузером. Мы назовем наш скрипт index.php и положим его в поддиректорию внутри корневой директории документов /htdocs/ .
Smarty понадобятся права на запись (пользователей Windows это не касается) в директории $compile_dir и $cache_dir ( templates_c/ и cache/ ), так что убедитесь, что у веб-сервера есть эти права.
Note
Обычно это пользователь “ nobody ” и группа “ nobody ” . Для пользователей OS X, пользователь по умолчанию — это “ www ” и группа — “ www ” . Если вы используете Apache, вы можете узнать используемые имя пользователя и группу из файла httpd.conf .
Example 2.7. Установка прав доступа к файлам и директориям
chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/ chmod 770 /web/www.example.com/smarty/guestbook/templates_c/ chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/ chmod 770 /web/www.example.com/smarty/guestbook/cache/
Примечание
chmod 770 даёт достаточно жесткую защиту — разрешает только пользователю “ nobody ” и группе “ nobody ” доступ на чтение и запись в эти директории. Если вы хотите открыть доступ на чтение для всех (обычно для собственного удобства при просмотре этих файлов), вы можете использовать значение 775 .
Нам необходимо создать файл index.tpl , которы будет загружаться Smarty. Он будет расположен в $template_dir .
Example 2.8. /web/www.example.com/guestbook/templates/index.tpl
Привет, ! Добро пожаловать в Smarty!
Техническое замечание
— это комментарий шаблона. Он не является обязательным, но его размещение в начале каждого шаблона является хорошим тоном. Это позволяет проще различать файлы независимо от их расширения. К примеру, текстовые редакторы могут узнавать этот файл и включать особенную подсветку синтаксиса.
Теперь давайте отредактируем index.php . Мы создадим экземпляр Smarty, присвоим значение переменной шаблона и отобразим файл index.tpl .
Example 2.9. /web/www.example.com/docs/guestbook/index.php
template_dir = '/web/www.example.com/guestbook/templates/'; $smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $smarty->config_dir = '/web/www.example.com/guestbook/configs/'; $smarty->cache_dir = '/web/www.example.com/guestbook/cache/'; $smarty->assign('name', 'Катруська'); //** раскомментируйте следующую строку для отображения отладочной консоли //$smarty->debugging = true; $smarty->display('index.tpl'); ?>
Примечание
В нашем примере мы устанавливаем абсолютные пути ко всем директориям Smarty. Если /web/www.example.com/guestbook/ находится в include_path вашего PHP, то эти настройки не обязательны. Тем не менее, более эффективным и (из опыта) менее глюкоопасным является использование абсолютных путей. Это придаст уверенность в том, что Smarty получает файлы из тех директорий, из которых вы хотите.
Теперь перейдите к файлу index.php при помощи вашего веб-браузера. Вы должны увидеть надпись «Привет, Катруська! Добро пожаловать в Smarty!»
Вы закончили базовую установку Smarty!
| Prev | Up | Next |
| Chapter 2. Установка | Home | Расширенная установка |
