Главная страница
Навигация по странице:

  • $recordset->fields

  • Файлы библиотеки Smarty

  • Создание обекта Smarty

  • Редактирование /web/www.library.ru/docs/ guestbook/index.php

  • Методические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007


    Скачать 0.8 Mb.
    НазваниеМетодические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007
    Дата15.03.2022
    Размер0.8 Mb.
    Формат файлаdoc
    Имя файлаsql (1).doc
    ТипМетодические указания
    #397929
    страница10 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Настройка ADODB для более высокой производительности


    ADODB – это очень большая библиотека, которая всеже превосходит все другие библиотеки PHP в производительности. Это происходит потому, что она разработана в виде слоев, подобно луку, самые быстрые функции расположены во внутреннем слое. Придерживайтесь использования следующих функций для большей производительности:

    Самый низкоуровневый слой:

    Connect, PConnect, NConnect

    Execute, CacheExecute

    SelectLimit, CacheSelectLimit

    MoveNext, Close

    qstr, Affected_Rows, Insert_ID

    Самый быстрый способ получить доступ к данным, это обращаться непосредственно к массиву с данными $recordset->fields. Также установите значения глобальным переменным $ADODB_FETCH_MODE = ADODB_FETCH_NUM, и (для oci8, ibase/firebird и odbc) $ADODB_COUNTRECS = false до того, как подключитесь к базе данных.

    Используйте связанные параметры, если ваша база данных поддерживает это, поскольку это улучшает повторное использование запросов. Используйте систему тонкой настройки ADODB для быстрого выявления узких мест. На время написания (Дек. 2003) это справедливо и для oci8 и odbc драйверов.

    Наконец, убедитесь, что у вас установлен PHP акселератор кэширования, например, APC, Turck MMCache, Zend Accelerator или ionCube.

    Несколько примеров:

    Быстрый доступ к данным в PHP:

    $rs =& $rs->Execute($sql);

    while (!$rs->EOF) {

    var_dump($rs->fields);

    $rs->MoveNext();

    }

    Быстрый доступ к данным в ADODB:

    $rs =& $rs->Execute($sql);

    $array = adodb_getall($rs);

    var_dump($array);



    SMARTY

    Smarty - это компилирующий обработчик шаблонов для PHP и на PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и верстальщик шаблона - различные люди.

    Например, скажем, нужно создать страницу, которая показывает газетную статью. Название статьи, автор и сама статья - элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения, а верстальщик шаблона редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т.д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения). Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.

    Одно из предназначений Smarty - это отделение логики приложения от представления. Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т.д. - всё это является примером логики представления. Не следует думать, что Smarty заставляет вас разделять логику приложения и представление. Smarty не видит разницы между этими вещами, так что помещать или не помещать логику приложения в шаблоны - решать вам. Если же вы считаете, что в шаблоне вообще не должно быть логики, вы можете ограничиться использованием чистого текста и переменных.

    Одна из уникальных возможностей Smarty - компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами таких кэшируюших решений, как Zend Accelerator (http://www.zend.com/) или PHP Accelerator (http://www.php-accelerator.co.uk).

    Некоторые особенности Smarty:

    • Он очень быстр.

    • Он эффективен, так как обработчик PHP делает за него грязную работу.

    • Никакой лишней обработки шаблонов, они компилируются только один раз.

    • Перекомпилируются только те шаблоны, которые изменились.

    • Вы можете создавать пользовательские функции и модификации, что делает язык шаблонов чрезвычайно расширяемым.

    • Настраиваемые разделители тэгов шаблона, то есть вы можете использовать {}, {{}}, , и т.д.

    • Конструкции if/elseif/else/endif конструкции передаются обработчику PHP, так что синтаксис выражения {if ...} может быть настолько простым или сложным, насколько вам угодно.

    • Допустимо неограниченное вложение секций, условий и т.д.

    • Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекоммендуется), так как движок весьма гибок и расширяем.

    • Встроенный механизм кэширования.

    • Произвольные источники шаблонов.

    • Пользовательские функции кэширования.

    • Компонентная архитектура.


    Базовая установка

    Скопируйте файлы Smarty, которые находятся в директории /libs/ дистрибутива. Редактировать эти файлы НЕ СЛЕДУЕТ. Они должны использоваться всеми приложениями и изменяться только при обновлении Smarty до новой версии.

    Файлы библиотеки Smarty

    Smarty.class.php

    Smarty_Compiler.class.php

    Config_File.class.php

    debug.tpl

    /plugins/*.php (все файлы)

    /internals/*.php (все файлы)

    Smarty использует константу PHP SMARTY_DIR, которая указывает путь к директории библиотеки Smarty. Обычно, если приложение может найти файл Smarty.class.php, то нет необходимости устанавливать SMARTY_DIR. Однако, если Smarty.class.php не может быть найден в include_path или не указан абсолютный путь к нему в приложении, то должен быть определен SMARTY_DIR вручную. SMARTY_DIR должен включать завершающий слэш.

    Создание обекта Smarty

    Вот как следует создавать экземпляр объекта Smarty в PHP-скриптах:

    require('Smarty.class.php');
    $smarty = new Smarty;
    ?>

    Теперь, когда все файлы находятся на своих местах, пришло время установки директорий Smarty в приложении. Smarty требует четыре директории, которые (по умолчанию) называются templates, templates_c, configs и cache. Каждая из них определяется свойствами класса Smarty: $template_dir, $compile_dir, $config_dir и $cache_dir соответственно. Настойчиво рекомендуется использовать разные наборы этих директорий для каждого приложения, использующего Smarty.

    Нужно знать расположение корневой директории для документов веб-сервера, например это /web/www.library.ru/docs/. Так как доступ к директориям Smarty получает только библиотека Smarty и они никогда не запрашиваются напрямую веб-браузером, рекомендуется вынести директории Smarty за пределы корневой директории для документов, чтобы избежать лишнего беспокойства относительно безопасности.

    В примере устанавливается Smarty для некоторой гостевой книги. Приложение было выбрано только для того, чтобы использовать его имя в именах директорий. Можно использовать те же настройки с любым другим приложением, просто меняя "guestbook" на имя другого приложения. В данном примере директории Smarty тут: web/www.library.ru/smarty/guestbook/

    Понадобится как минимум один файл в корневой директории для документов - это скрипт, к которому обращается веб-браузер. Это скрипт index.php и помещен он в поддиректорию /guestbook/ корневой директории для документов.

    Замечание: Бывает удобно настроить веб-сервер так, чтобы "index.php" расценивался как индексный файл дирекотрии по умолчанию, чтобы при запросе страницы "http://www.library.ru/guestbook/", вызывался скрипт index.php без "index.php" в конце адресной строки. В веб-сервере Apache можно настроить это, добавив "index.php" в конец директивы DirectoryIndex (записи разделяются пробелами).

    Необходимо создать файл index.tpl, который будет загружаться Smarty. Он будет расположен в $template_dir.
    Редактирование /web/www.library.ru/smarty/guestbook/templates/index.tpl

    {* Smarty *}
    Hello, {$name}!

    Замечание: {* Smarty *} - это комментарий шаблона. Он не является обязательным, но его размещение в начале каждого шаблона является хорошим тоном. Это позволяет проще различать файлы независимо от их расширения. К примеру, текстовые редакторы могут узнавать файл и включать особенную подсветку синтаксиса.

    Редактирование /web/www.library.ru/docs/ guestbook/index.php

    // загружаем библиотеку Smarty
    require('Smarty.class.php');

    $smarty = new Smarty;

    $smarty->template_dir = '/web/www.library.ru/smarty/guestbook/templates/';
    $smarty->compile_dir = '/web/www.library.ru/smarty/guestbook/templates_c/';
    $smarty->config_dir = '/web/www.library.ru/smarty/guestbook/configs/';
    $smarty->cache_dir = '/web/www.library.ru/smarty/guestbook/cache/';

    $smarty->assign('name','Ned');

    $smarty->display('index.tpl');
    ?>



    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта