Быстрая разработка веб-приложения попросту немыслима без четкой, разработанной и продуманной заранее концепции построения программной структуры всего проекта. Важно все, от методологии размещения и наименования функций до используемых вами библиотек. Однако эти самые функциональные наборы, они же библиотеки часто используемых функций, как правило, подолгу не задерживаются в одной и той же версии. Особенно это характерно для активных разработчиков, которые каждый день занимаются улучшением качества своих программных продуктов. В составе стандартного ядра веб-приложений одного и того же специалиста по мере углубления его квалификации и изучения им новых технологий появляются все новые и новые возможности и становится все меньше и меньше ошибок.
Зачем нужны такие библиотеки
В случае же коллективной разработки большой задачи несколькими квалифицированными разработчиками вполне может случиться такая ситуация, когда один из программистов более продвинут, чем остальные. В итоге применяемый им набор функций может уйти вперед за уровень проекта и сделать понимание всего дальнейшего пути разработки довольно сложной задачей для более слабых специалистов. Для того чтобы как-то решить конфликт интересов, в таких проектах имеет смысл применять стандартные библиотеки, которые бы помогли вашей команде или вам лично решать часто возникающие задачи однотипными методами. В случае же постоянной ротации кадров в поддерживаемом вами проекте использование однотипных методов и функций поможет решить проблему открытости кода, который был написан различными программистами. Кроме того, применение стандартных библиотек благотворно влияет на такие процессы, как миграция ваших приложений с одних структур размещения данных в другие. Однозначно проще организовывать отладку и отсылку почты с помощью уже готовых функций, чем изобретать колеса или рыться в документации или соответствующих RFC.
Библиотека функций от компании-разработчика блог-решения ezPublish включает в себя большое количество разнообразных функций и методов, которые применимы в любом PHP-проекте. Эта библиотека решений поможет вам решить дилемму: какими функциями (от кого из ваших разработчиков) пользоваться и вообще стоит ли разрабатывать функционал, который можно изначально использовать путем простого включения файлов библиотеки в ваше приложение. Для включения файлов библиотеки в готовое приложение не требуется множества усилий. Кроме того, при построении уникальной веб-системы можно несколько упростить процесс подключения специальным конфигурированием интерпретатора PHP. Вдобавок библиотека снабжена отличной документацией по всем своим функциям.
Перечень возможностей
Итак, какие же возможности предлагает нам eZComponents? Физически это набор из нескольких классов, которые позволяют выполнить те или иные действия. Функциональность рассчитана на каждодневное применение и действительно может понадобиться при написании большинства веб-проектов. Далее приводится список возможностей модулей, которые присутствуют в текущей версии (stable 1.0) библиотеки компонентов:
- Archive — методы, предназначенные для создания и чтения файлов архивов zip- и tar-форматов. В настоящее время поддерживаются также такие алгоритмы сжатия данных, как GZip и BZip2;
- Cache — набор простых классов, предназначенных для кеширования разнообразных видов данных. Предоставляется также базовый класс, необходимый для управления всей функциональностью кеш-функций;
- Configuration — компонент, который предназначается для чтения конфигурационных файлов. В текущей версии поддерживаются два формата таких файлов: текстовый ini-файл и в виде представления PHP-массива;
- ConsoleTools — набор утилит, которые могут оказаться полезными для приложений, запускаемых в оболочке (в консоли). Такая функциональность полезна для рутинных заданий вроде автоматической очистки каталогов временных файлов или запуска автоматического архивирования;
- Database — эти классы несколько расширяют функциональность стандартной библиотеки PDO (PHP 5). В текущей версии eZComponents поддерживаются следующие системы управления базами данных — MySQL, PostgreSQL, Oracle и SQLite;
- Debug — отладка во время исполнения и лог-контроль для ваших скриптов;
- EvenLog — запись и отслеживание событий, происходящих в вашем приложении. Запись происходит в базу данных SQL или в файл;
- Execution — этот компонент позволяет отследить такое неприятное явление, как появление ошибок компиляции или выполнения. Даже если такое случится, вы всегда сможете добавить более дружественное для пользователя сообщение с указанием, что следует предпринять посетителю вашего сайта при возникновении той или иной ошибки;
- ImageAnalysis — получение некоторых параметров изображений;
- ImageConversion — компонент, предназначенный для манипулирования картинками. Вы сможете выполнить разнообразные операции над вашими изображениями с помощью одного из двух поддерживаемых библиотекой обработчиков. Компонент позволяет использовать для этого возможности либо расширения GD, либо ImageMagick;
- Mail — этот компонент позволяет создавать и отсылать сообщения в html-формате, привязывать к ним вложенные файлы. В случае необходимости также можно самостоятельно задать все необходимые параметры отсылаемого письма;
- Persistent — этот объект позволяет абстрагировать доступ к конкретной базе данных, для чего использует возможности класса Database;
- PhpGenerator — классы этого компонента предоставляют простые PHP-файлы, например для обеспечения кеширования;
- Translation — обеспечение поддержки многоязычности вашего веб-сайта. Компонент позволяет получать данные для перевода названий из нескольких источников с фильтрацией получаемых данных. Обеспечивается возможность поддержки встроенных параметров, позволяющих переводить только необходимые вам части текста;
- TranslationCacheTiein — позволяет связать объекты для перевода с кеширующими классами;
- UserInput — компонент позволяет обрабатывать входящие от GET/POST-запросов данные. Он выполняет именно обработку, а не создание веб-форм.
Установка eZComponents в PEAR
Вы можете установить библиотеки как с помощью инсталлятора PEAR, так и вручную. Установка с помощью PEAR позволяет автоматизировать процесс размещения библиотек, насколько это возможно. Для того чтобы воспользоваться возможностями автоматизированного PEAR-инсталлятора, у вас должна быть установлена одна из последних версий PHP. Следует использовать версию интерпретатора 5.1.1 или более новую. Для начала процесса установки следует выполнить команды, которые выполнят подключение к серверу компонента и установят последнюю версию этого программного обеспечения на ваш компьютер:
pear channel-discover components.ez.no
pear install -a ezc/eZComponents
В дальнейшем можно просто обновить используемую версию с помощью команды:
pear upgrade ezc/eZComponents
Компонент будет установлен в подкаталоге eZComponents сборника библиотек PEAR.
Установка с помощью SVN
Кроме стандартного для PHP варианта установки, есть возможность воспользоваться системой SVN (система контроля версий и обеспечения доступа к исходным кодам), которая предоставит вам самые свежие версии этих библиотек. Для того чтобы установить последние версии библиотеки, вначале создайте директорию, в которой будут размещаться файлы библиотеки. Далее для установки, например, компонента Base из только что созданного каталога запустите команду:
svn co /redir.php?url=svn.ez.no%2Fsvn%2Fezcomponents%2Fpackages%2FBase%3C%2Fsamp%3E
При таком способе установки важно после установки всех необходимых компонентов установить переменные среды. Для этого загрузите с сервера обновлений необходимые скрипты командой:
svn co /redir.php?url=svn.ez.no%2Fsvn%2Fezcomponents%2Fscripts%3C%2Fsamp%3E
После чего выполните shell-скрипт (загрузившийся в подкаталог scripts):
./scripts/setup-env.sh
Эта команда создает символические ссылки, необходимые для автозагрузки библиотек, что, разумеется, актуально только для UNIX и не будет работать на платформе Win32.
Ручная установка
Если вы по каким-либо причинам не имеете установленного PEAR либо не используете SVN, есть возможность установить eZComponents вручную из предоставляемых на сайте разработчика архивов. Загрузить последние версии библиотеки можно в разделе загрузки eZComponents на веб-сайте компании eZSystems, которая, собственно, и разработала набор библиотек. После загрузки распакуйте полученный архив в любую директорию.
Конфигурирование
После загрузки и распаковки исходных кодов библиотеки необходимо внести небольшие коррективы в php.ini, для чего следует указать местоположение каталога с файлами библиотеки в качестве значения переменной include_path, например следующим образом:
include_path = ".:/php/includes"
Если вы не укажете значение этой переменной, то в начале каждого скрипта, который будет использовать библиотеки eZComponents, следует указать:
<?php Автозагрузка библиотеки
Благодаря специальному механизму автозагрузки нет необходимости включать скрипты библиотеки в ваши приложения с помощью директив require и include. Подключения всех необходимых скриптов происходят автоматически с помощью следующего кода, который должен быть размещен в начале вашего PHP-приложения:
<?
При подключении файла какого-либо класса просто укажите:
__autoload("имя класса")
Использование
Набор методов, предоставляемых библиотекой eZComponents, обширен, хоть и не содержит некоторых классов вроде построителя html-таблиц. Полную информацию о методах классов можно получить на странице онлайн-документации по компонентам библиотеки.
Выводы
Современные бизнес-приложения разрабатываются в довольно сжатые сроки. Виной всему не столько нетерпеливость заказчиков, сколько нарастающая конкуренция на рынке разработки программных продуктов. Не удивительно, что пальму первенства в сфере разработки бухгалтерских программ занимают программы вроде "1С:Предприятия", которые позволяют достаточно быстро решать специфические задачи. Чтобы хоть как-то упростить процесс создания веб-приложений, имеет смысл использовать не просто голый интерпретатор, а набор готовых библиотек. Никого сейчас не удивит профессионально написанное веб-приложение с оформлением, созданным в Dreamweaver или подобных программах. Использование же классов компонентов вроде eZComponents открывает новые возможности для разработчиков благодаря не только ускорению процесса, но и качеству разработки.
set_include_path
(
"/path/to/ez/directory" .
ini_get("include_path")
);
?>
require_once "Base/base.php";
function __autoload($className)
{
ezcBase::autoload($className);
}
...
Ссылки по теме
Статья получена: hostinfo.ru