Что это такое: PEAR?
Вернуться к: Введение
PEAR - это аббревиатура от "PHP Extension and Application Repository" (Репозиторий приложений и модулей PHP).
PEAR - это:
-
структурированная библиотека открытого кода, созданная для пользователей PHP;
-
система управления пакетами и распространения кода среди разработчиков;
-
стандарт написания PHP-кода (подробнее о стандарте см. здесь);
-
базовые классы PHP-кода (подробнее о базовых классах см. здесь;
-
библиотека дополнительных модулей для PHP (The PHP Extension Code Library, PECL), подробную информацию о PECL можно узнать здесь;
-
веб-сайт, листы рассылки и зеркала для загрузки - все это предназначено для поддержания и развития сообщества разработчиков PHP/PEAR.
Структурированная библиотека PHP-кода
Код в PEAR разделен на так называемые "пакеты". Каждый пакет - это отдельный проект со своей командой разработчиков, номером версии, циклом разработки, документацией и определенным отношением к остальным пакетам (включая возможные зависимости). Пакеты распространяются в виде архивов *.TAR.GZ, которые включают в себя описание пакета, и устанавливаются на вашей системе с помощью инсталлятора PEAR.
Есть два типа пакетов: пакеты исходного кода (содержат, соответственно, только исходники) и бинарные пакеты (содержат платформозависимые бинарные файлы и, возможно, их исходный код). Естественно, что установка пакетов, которые содержат код на C, из исходников требует присутствия среды для компиляции C-кода.
В PEAR существует определенное дерево пакетов, в котором каждой ветвью является часть имени пакета. Ветви разделяются по темам, их названия в именах пакетов разделяются символом подчеркивания. Например, "MP3_Id", "Archive_Tar" и "HTTP_Post".
Пакеты могут находиться в зависимости друг от друга, однако не существует какой-либо обязательной зависимости между пакетом и его "родителем" в дереве пакетов (например, "HTTP_Post" не зависит от "HTTP").
Несколько ветвей высшего уровня называются "суб-репозиториями" и выполняют специальные функции. На данный момент это: PECL, Gtk и App. Каждый из них достоин отдельной темы, поэтому за дополнительной информацией лучше обратиться в соответствующие разделы настоящей документации.
Руководство по стилю написания кода, Стандарт кодирования PEAR (или коротко - PCS), существует для облегчения совместной работы разработчиков PEAR, для повышения качества и портабельности, а также для того, чтобы помочь разработчикам в создании cтандартизированных программных интерфейсов. В пакетах, которые входят в PFC (The PHP Foundation Classes), стандарт кодирования соблюдается особо строго, для других - менее.
Распространение кода и управление пакетами
Все пакеты PEAR регистрируются и загружаются в центральную базу данных, которая доступна на pear.php.net. Сторонние пакеты с открытыми исходниками так же могут быть зарегистрированы и загружены. Пакеты с закрытыми исходниками PEAR предназначена только для кода с открытыми исходниками.
Pear.php.net предоставляет два варианта интерфейсов к базе данных PEAR: дружественный для пользователя интерфейс (HTML) и интерфейс для машины (на данный момент это XML-RPC). Загрузка пакетов осуществляется с помощью HTTP. Также, pear.php.net выполняет и другие функции:
-
управление пользовательскими записями (интегрированное с сервером CVS)
-
управление пакетами
-
управление релизами пакетов
Пакеты распространяются в виде архивов *.TAR.GZ с описанием в формате XML. Описание содержит информацию о пакете, список файлов и их предназначений, а также список зависимостей.
Базовые классы PHP
Базовые классы (The PHP Foundation Classes, PFC) - это подмножество PEAR, основными целями которого являются качество, универсальность, многофункциональность и совместимость. В том случае, если PHP и далее будет поставляться вместе с пакетами PEAR и установщиком, то этими пакетами непременно будут базовые классы.
Повышенное качество этих пакетов означает то, что ни один пакет с уровнем ниже "stable" не будет допущен в PFC.
Универсальность означает, что пакеты не должны без особых на то причин зависеть от любого вида внешнего окружения (например, формата вывода, операционной системы, веб-сервера, SAPI и др.)
Многофункциональность пакетов означает, что их удобно использовать в других пакетах, они имеют стабильный и стандартизированный API, предпочитают использовать устоявшиеся компоненты, а также не зависят от внешней среды (версии PHP, SAPI, операционной системы и др.)
Совместимость - это не просто поддержка синтаксиса и семантики предыдущих версий, это также заблаговременное планирование. Проектирование кода таким образом, что добавление новой функциональности не требует больших усилий, делает код "совместимым с будущими версиями".
Библиотека дополнительных модулей для PHP (PECL)
PECL
PECL (The PHP Extension Code Library) - это суб-репозиторий PEAR для модулей, написанных на C, как и те, которые распространяются вместе с самим PHP. На самом деле, одним из мотивов создания PECL была необходимость перемещения куда-либо модулей из PHP. Модули в PECL соблюдают стандарты кодирования, использованные при написании PHP, а не стандарты кодирования PEAR, однако они распространяются и устанавливаются с помощью пакетов PEAR.
Процесс перемещения модулей из PHP в PECL называется "pickling" (от PECL и от "pick" - "отбирать").
Пакеты Gtk
Gtk
Пакеты Gtk - это пакеты, которые используют функциональность проекта PHP-GTK. Код в этом суб-репозитории следует стандарту кодирования PEAR.
На данный момент еще нет определенного плана о том, как они будут распространяться.
Пакеты приложений
App
TBD
Вернуться к: Введение