Опис основних видів і способів розкручення web-сайту. Опис різноманітних факторів, які впливають на позицію отриманих сторінок web-сайту при пошуковому запиті.
Smarty - це компілятор шаблонів для PHP. Говорячи більш чітко, він дозволяє добитися відділення прикладної логіки і даних від їх представлення. Це дуже зручно в ситуаціях, коли програміст і верстальник шаблону - різні люди.
Одна з унікальних можливостей Smarty - компіляція шаблонів. Це означає, що Smarty читає файли шаблонів і створює PHP-код на їх основі. Код створюється один раз і потім тільки виконується. Тому немає необхідності в повільній обробці файл шаблону для кожного запиту. Деякі особливості Smarty:
Він дуже швидкий.
Він ефективний, так як обробник PHP робить за нього брудну роботу.
Ніякої зайвої обробки шаблонів, вони компілюються тільки один раз.
Перекомпілюються тільки ті шаблони, які змінилися.
Ви можете легко створювати власні призначені для користувача функції і модифікатори змінних, що робить мову шаблонів надзвичайно розширюємося.
Власні (роздільники) тегів шаблону
Конструкції {if} .. {elseif} .. {else}..{/ if} передаються обробникові PHP, так що синтаксис виразу {if ...} може бути настільки простим або складним, наскільки вам завгодно.
Припустимо необмежене вкладення секцій, умов і т.д.
Існує можливість включення PHP-коду прямо у ваш шаблон, проте зазвичай в цьому немає необхідності (і це не рекомендує), оскільки smarty дуже гнучкий.
Вбудований механізм кешування
Довільні джерела шаблонів.
Користувацькі функції кешування.
Компонентна архітектура.
Cайт розробника - http://smarty.php.net
Дистрибутиви Smarty завантажуємо з офіційного сайту
Вимоги
Для встановлення та роботи Smarty необхідний веб-сервер з встановленим PHP версії 4.0.6 або вище.
Базова установка
Скопіюйте файли Smarty, які знаходяться в субдіректоріі / libs / дистрибутива. Редагувати ці PHP-файли НЕ ПОТРІБНО. Вони повинні використовуватися усіма додатками і змінюватися тільки при оновленні Smarty до нової версії.
У наступних прикладах архів з вихідним кодом Smarty був розпакований в:
/usr/local/lib/Smarty-v.e.r/ для машин под Unix
c:\webroot\libs\Smarty-v.e.r\ для машин под Windows
Smarty використовує константу PHP SMARTY_DIR, що вказує повний шлях до директорії libs / з Smarty. Зазвичай, якщо ваш додаток може знайти файл Smarty.class.php, то немає необхідності встановлювати SMARTY_DIR - Smarty сам у всьому розбереться.
Однак, якщо Smarty.class.php не може бути знайдений у вашому include_path або ви не вказували абсолютний шлях до нього в програмі, то ви повинні визначити SMARTY_DIR вручну. SMARTY_DIR повинна включати завершальний слеш.
Ось як слід створювати екземпляр об'єкта Smarty у ваших PHP-скриптах:
<?php // Обратите внимание: в слове Smarty буква 'S' должна быть заглавной require_once('Smarty.class.php'); $smarty = new Smarty(); ?>
Спробуйте виконати вищевказаний код. Якщо ви отримуєте помилку про те, що Smarty.class.php не знайдено, спробуйте наступні варіанти дій:
Приклад 2-2. Ручная установка константы SMARTY_DIR
<?php // стиль *nix (не забывайте о заглавной 'S') define('SMARTY_DIR', '/usr/local/lib/Smarty-v.e.r/libs/');
// стиль windows define('SMARTY_DIR', 'c:/webroot/libs/Smarty-v.e.r/libs/');
// пример хака для работы одновременно с *nix и windows
// предполагается, что Smarty находится в директории 'includes/' относительно текущего скрипта define('SMARTY_DIR', str_replace("\\", "/", getcwd()).'/includes/Smarty-v.e.r/libs/');
require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); ?>
Приклад 2-3. Передача абсолютного пути к файлам библиотеки
<?php // стиль *nix (не забывайте о заглавной 'S') require_once('/usr/local/lib/Smarty-v.e.r/libs/Smarty.class.php');
// стиль windows require_once('c:/webroot/libs/Smarty-v.e.r/libs/Smarty.class.php');
$smarty = new Smarty(); ?>
Приклад 2-4. Добавление библиотеки в путь в файле php.ini
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;;
// windows ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.'c:/webroot/lib/Smarty-v.e.r/libs/'); ?>
Тепер, коли всі файли знаходяться на своїх місцях, прийшов час установки директорій Smarty у вашому проекті.
Smarty потрібно чотири директорії, які за умовчанням називаються templates /, templates_c /, configs / і cache /
Кожна з них визначається властивостями класу Smarty: $ template_dir, $ compile_dir, $ config_dir і $ cache_dir відповідно. Наполегливо рекомендується використовувати різні набори цих директорій для кожного додатки, використовує Smarty.
У нашому прикладі ми будемо встановлювати Smarty для деякої гостьової книги. Додаток було вибрано тільки для того, щоб використовувати його ім'я в іменах директорій. Ви можете використовувати ті ж установки з будь-яким іншим додатком, просто міняючи guestbook / на ім'я вашого застосування.
Переконайтеся, що ви знаєте розташування кореневої директорії документів вашого веб-сервера. У наступних прикладах, кореневої директорією документів є / web / www.example.com / guestbook / htdocs /. Доступ до тек Smarty відбувається тільки з бібліотеки Smarty і ніколи не відбувається через веб-браузер. Тому, з метою безпеки рекомендує розташовувати ці директорії за межами кореневої директорії документів сервера, хоча це й не обов'язково.
Вам знадобиться як мінімум один файл всередині кореневої директорії документів - це скрипт, що викликається веб-браузером. Ми назвемо наш скрипт index.php і покладемо його в підтеку всередині кореневої директорії документів / htdocs /.
Smarty знадобляться права на запис (користувачів Windows це не стосується) в директорії $ compile_dir і $ cache_dir (templates_c / і cache /), так що переконайтесь, що у веб-сервера є ці права.
Зауваження: Звичайно це користувач "nobody" і група "nobody". Для користувачів OS X, користувач за замовчуванням - це "www" і група - "www". Якщо ви використовуєте Apache, ви можете дізнатися використовувані ім'я користувача і групу з файлу httpd.conf.
Приклад 2-7. Встановлення прав доступу до файлів і директорій
Примітка:chmod 770 дає досить жорсткий захист - дозволяє тільки користувачеві "nobody" і групі "nobody" доступ на читання і запис в ці директорії. Якщо ви хочете відкрити доступ на читання для всіх (звичайно для власної зручності при перегляді цих файлів), ви можете використовувати значення 775.
Нам необходимо создать файл index.tpl, которы будет загружаться Smarty. Он будет расположен в $template_dir.
Приклад 2-8. /web/www.example.com/guestbook/templates/index.tpl
{* Smarty *}
Привет, {$name}! Добро пожаловать в Smarty!
Технічне зауваження:(* Smarty *) - це коментар шаблону. Він не є обов'язковим, але його розміщення на початку кожного шаблону є гарним тоном. Це дозволяє простіше розрізняти файли незалежно від їх розширення. Наприклад, текстові редактори можуть дізнаватися цей файл і включати особливу підсвічування синтаксису.
Тепер давайте відредагуємо index.php. Ми створимо примірник Smarty, привласнимо значення змінної шаблону і відобразимо файл index.tpl.
Приклад 2-9. /web/www.example.com/docs/guestbook/index.php
Зауваження:
У нашому прикладі ми встановлюємо абсолютні шляху до всіх тек Smarty. Якщо / web / www.example.com / guestbook / знаходиться в include_path вашого PHP, значення цих параметрів не обов'язкові. Тим не менше, більш ефективним і (з досвіду) менш глюкоопасним є використання абсолютних шляхів. Це додасть впевненість в тому, що Smarty отримує файли з тих директорій, з яких ви хочете.
Тепер перейдіть до файлу index.php за допомогою вашого веб-браузера.
Ви повинні побачити напис - "Привіт, Катруська! Ласкаво просимо до Smarty!"
Поздоровляю, ви закінчили базову установку Smarty і тепер повноцінно можете створювати свої Web-проекти!
Детально про підключення й використання шаблонної технології Smarty дивіться в статті Створюємо «файл PHP»
Крім того, нам буде потрібна документація по роботі з Smarty (основи програмування, синтаксис, функції й т.д.) і , звичайно, на російскій мові.