Что такое php pear

Что это такое: PEAR?

структурированная библиотека открытого кода, созданная для пользователей PHP;

система управления пакетами и распространения кода среди разработчиков;

стандарт написания PHP-кода (подробнее о стандарте см. здесь);

базовые классы PHP-кода (подробнее о базовых классах см. здесь;

библиотека дополнительных модулей для PHP (The PHP Extension Code Library, PECL), подробную информацию о PECL можно узнать здесь;

Структурированная библиотека PHP-кода

Есть два типа пакетов: пакеты исходного кода (содержат, соответственно, только исходники) и бинарные пакеты (содержат платформозависимые бинарные файлы и, возможно, их исходный код). Естественно, что установка пакетов, которые содержат код на C, из исходников требует присутствия среды для компиляции C-кода.

В PEAR существует определенное дерево пакетов, в котором каждой ветвью является часть имени пакета. Ветви разделяются по темам, их названия в именах пакетов разделяются символом подчеркивания. Например, «MP3_Id», «Archive_Tar» и «HTTP_Post».

Пакеты могут находиться в зависимости друг от друга, однако не существует какой-либо обязательной зависимости между пакетом и его «родителем» в дереве пакетов (например, «HTTP_Post» не зависит от «HTTP»).

Несколько ветвей высшего уровня называются «суб-репозиториями» и выполняют специальные функции. На данный момент это: PECL, Gtk и App. Каждый из них достоин отдельной темы, поэтому за дополнительной информацией лучше обратиться в соответствующие разделы настоящей документации.

Распространение кода и управление пакетами

Все пакеты PEAR регистрируются и загружаются в центральную базу данных, которая доступна на pear.php.net. Сторонние пакеты с открытыми исходниками так же могут быть зарегистрированы и загружены. Пакеты с закрытыми исходниками PEAR предназначена только для кода с открытыми исходниками.

Pear.php.net предоставляет два варианта интерфейсов к базе данных PEAR: дружественный для пользователя интерфейс (HTML) и интерфейс для машины (на данный момент это XML-RPC). Загрузка пакетов осуществляется с помощью HTTP. Также, pear.php.net выполняет и другие функции:

    управление пользовательскими записями (интегрированное с сервером CVS)

    управление релизами пакетов

    Пакеты распространяются в виде архивов *.TAR.GZ с описанием в формате XML. Описание содержит информацию о пакете, список файлов и их предназначений, а также список зависимостей.

    Базовые классы PHP

    Повышенное качество этих пакетов означает то, что ни один пакет с уровнем ниже «stable» не будет допущен в PFC.

    Универсальность означает, что пакеты не должны без особых на то причин зависеть от любого вида внешнего окружения (например, формата вывода, операционной системы, веб-сервера, SAPI и др.)

    Многофункциональность пакетов означает, что их удобно использовать в других пакетах, они имеют стабильный и стандартизированный API, предпочитают использовать устоявшиеся компоненты, а также не зависят от внешней среды (версии PHP, SAPI, операционной системы и др.)

    Библиотека дополнительных модулей для PHP (PECL)

    Пакеты Gtk

    На данный момент еще нет определенного плана о том, как они будут распространяться.

    Источник

    What is PEAR?

    PEAR is short for » PHP Extension and Application Repository » and is pronounced just like the fruit. The purpose of PEAR is to provide:

    PEAR is a community-driven project governed by its developers. PEAR’s governing bodies are subdivided into the PEAR Group, Collectives, and a President. PEAR’s constitution (adopted in March 2007) defining these groups is documented here. The PEAR project was founded in 1999 by Stig S. Bakken and quite a lot of people have joined the project.

    PEAR Mission Statement

    PEAR’s mission is to provide reusable components, lead innovation in PHP, provide best practices for PHP development and educate developers.

    Structured Libraries and Applications of PHP Code

    The code in PEAR is partitioned in » packages «. Each package is a separate project with its own development team, version number, release cycle, documentation and a defined relation to other packages (including dependencies). Packages are distributed as gzipped tar files with a description file inside, and installed on your local system using the PEAR installer.

    Packages may relate to each other through explicit dependencies, but there is no automatic dependency relationship between packages based on the package name. For example, » HTTP_Post » is by default independent of » HTTP «. Dependencies between packages with similar names is not forbidden, and does happen. As an example,the » DB_DataObject » package depends on the » DB » package.

    A style guide, the PEAR Coding Standards (short PCS), exists to ease collaboration between PEAR developers, to enforce quality, and to enforce a consistent visual appearance of all source code distributed as a PEAR package.

    Code Distribution and Package Maintenance

    All PEAR packages are registered in and downloaded from a central server at pear.php.net. Other third-party servers called » channels » also distribute packages that can be installed by the PEAR Installer, see the Channels list for more information. pear.php.net does not endorse the packages from these channels, and only provides support for packages distributed from pear.php.net.

    Pear.php.net provides both a human-friendly (HTML) and machine-friendly (currently REST ) interface to the packages available from pear.php.net. All communication occurs over the HTTP protocol. Other functions the pear.php.net site provides are:

    Packages are distributed as a gzipped tar file with an XML description file inside. The description file (package.xml) contains some information about the package, a list of files and their roles, and dependencies.

    The PHP Extension Community Library (PECL)

    PECL (pronounced » pickle «) is a separate project that distributes PHP extensions (compiled code written in C, such as the PDO extension). PECL extensions are also distributed as packages and can be installed using the PEAR installer with the pecl command.

    More information and all PECL packages can now be found on the PECL homepage.

    Источник

    Что такое php pear

    PEAR посвящается Malin Bakken, родившейся 21 ноября 1999 года (первые строки PEAR были написаны всего за два часа до её рождения).

    структурированная библиотека открытого кода, созданная для пользователей PHP;

    система управления пакетами и распространения кода среди разработчиков;

    стандарт написания PHP-кода (подробнее о стандарте см. здесь );

    базовые классы PHP-кода (подробнее о базовых классах см. здесь ;

    библиотека дополнительных модулей для PHP (The PHP Extension Code Library, PECL), подробную информацию о PECL можно узнать здесь ;

    Есть два типа пакетов: пакеты исходного кода (содержат, соответственно, только исходники) и бинарные пакеты (содержат платформозависимые бинарные файлы и, возможно, их исходный код). Естественно, что установка пакетов, которые содержат код на C, из исходников требует присутствия среды для компиляции C-кода.

    В PEAR существует определенное дерево пакетов, в котором каждой ветвью является часть имени пакета. Ветви разделяются по темам, их названия в именах пакетов разделяются символом подчеркивания. Например, «MP3_Id», «Archive_Tar» и «HTTP_Post».

    Пакеты могут находиться в зависимости друг от друга, однако не существует какой-либо обязательной зависимости между пакетом и его «родителем» в дереве пакетов (например, «HTTP_Post» не зависит от «HTTP»).

    Все пакеты PEAR регистрируются и загружаются в центральную базу данных, которая доступна на pear.php.net. Сторонние пакеты с открытыми исходниками так же могут быть зарегистрированы и загружены. Пакеты с закрытыми исходниками PEAR предназначена только для кода с открытыми исходниками.

    Pear.php.net предоставляет два варианта интерфейсов к базе данных PEAR: дружественный для пользователя интерфейс (HTML) и интерфейс для машины (на данный момент это XML-RPC). Загрузка пакетов осуществляется с помощью HTTP. Также, pear.php.net выполняет и другие функции:

    управление пользовательскими записями (интегрированное с сервером CVS)

    управление релизами пакетов

    Пакеты распространяются в виде архивов *.TAR.GZ с описанием в формате XML. Описание содержит информацию о пакете, список файлов и их предназначений, а также список зависимостей.

    Повышенное качество этих пакетов означает то, что ни один пакет с уровнем ниже «stable» не будет допущен в PFC.

    Универсальность означает, что пакеты не должны без особых на то причин зависеть от любого вида внешнего окружения (например, формата вывода, операционной системы, веб-сервера, SAPI и др.)

    Многофункциональность пакетов означает, что их удобно использовать в других пакетах, они имеют стабильный и стандартизированный API, предпочитают использовать устоявшиеся компоненты, а также не зависят от внешней среды (версии PHP, SAPI, операционной системы и др.)

    На данный момент еще нет определенного плана о том, как они будут распространяться.

    Источник

    Введение

    Synopsis

    Базовый класс PEAR предоставляет стандартную функциональность, которая может быть использована большинством классов PEAR. Обычно не требуется создавать объект этого класса, для этого используется наследование от него.

    Главные особенности базового класса PEAR:

      «деструкторы» объектов, срабатывающие при завершении обработки запроса

      «деструкторы» PEAR

      Если ваш класс ClassName наследует класс PEAR, то вы можете объявить метод _ ClassName (имя класса с префиксом в виде подчеркивания), которые будет вызван по окончанию обработки запроса. Этот метод не является деструктором в том смысле, что вы можете «удалить» объект с его помощью, это метод объекта, который вызывается при завершении работы РНР. См. пример.

      Важно!

      Для того, чтобы обеспечить работу деструкторов, вы должны создавать объект вашего класса с помощью оператора «=& new». Вот так: this:

      Обработка ошибок в PEAR

      Один из основных принципов обработки ошибок в PEAR гласит, что ошибки не должны автоматически приводить к выводу на экран пользователя, ошибки должны обрабатываться вообще без какого-либо вывода на экран, если это требуется. Это позволяет обрабатывать ошибки «вежливо», кроме того, это позволяет избежать нежелательного вывода тогда, когда вы используете не HTML, а, например, XML или WML.

      Класс ошибок позволяет настроить себя так, что при возникновении ошибки (т.е. при создании экземпляра этого класса) могут выполняться различные действия. Например, вывод сообщения об ошибке, вывод сообщения и прекращение выполнения программы, вывод сообщения с помощью функции trigger_error(), вызов заранее назначенной функции или ничего из вышеперечисленного. Обычно эти параметры указываются в конструкторе PEAR_Error, но все эти параметры являются опциональными и вы можете использовать установки по умолчанию для ошибок, которые используются в классах, наследующих класс PEAR. См. примеры ошибок PEAR и документацию по PEAR_Error для более полной информации.

      Примеры

      Пример, приведенный ниже, показывает как использовать «деструкторы для бедных» PEAR для того, чтобы создать объект, содержимым которого является файл; объект позволяет добавлять данные в конец и записывает их при окончании обработки запроса:

      Эмулируемые деструкторы PEAR

      В примере используется враппер для fsockopen(), который при возникновении ошибки возвращает её код и текст в виде объекта PEAR_Error. Заметьте, что PEAR::isError() используется для того, чтобы определить является ли ошибкой возвращаемое значение.

      PEAR_Error в этом примере работает в режиме, при котором ошибка просто возвращается, а её обработка ложится на плечи программиста. Это поведение является поведением по умолчанию.

      В следующем примере мы покажем вам как использовать поведение по умолчанию:

      PEAR error example (2)

      Здесь мы сначала меняем поведение по умолчанию на PEAR_ERROR_DIE, а потом, т.к. мы не указываем режим работы в raiseError() (это должно было бы быть 3-м параметром), raiseError() использует поведение по умолчанию и прекращает выполнение скрипта при завершении fsockopen() с ошибкой.

      Использование глобальных переменных

      Класс PEAR использует несколько глобальных переменных для установок по умолчанию, а список объектов используется для работы «деструкторов». Все глобальные переменные, которые использует класс PEAR носят имя с префиксом _PEAR_.

      Если не установлен режим по умолчанию, то этот режим будет использован. Должен быть равен PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE или PEAR_ERROR_CALLBACK.

      Не меняйте значение это переменной напрямую, используйте PEAR::setErrorHandling()для этого:

      Если используется режим работы PEAR_ERROR_TRIGGER, то должна иметь значение E_USER_NOTICE, E_USER_WARNING или E_USER_ERROR.

      Не меняйте значение это переменной напрямую, используйте PEAR::setErrorHandling() для этого:

      Если при возврате ошибки не был указан параметр options и используется режим обработки ошибок PEAR_ERROR_CALLBACK, то значение этой переменной используется как имя функции, которая будет вызвана при появлении ошибки. Это означает, что вы можете временно переключить режим обработки ошибок без повторного указания имени функции-обработчика. Может иметь ст Here is an example of how you can switch back and forth without specifying the callback function again: роковое значение с именем функции или двухэлементный массив с объектом по индексу 0 и с именем метода по индексу 1.

      Еще раз повторим: не меняйте значение этой переменной напрямую, используйте PEAR::setErrorHandling() для этого:

      Следующий пример показывает как можно переключаться между режимами обработки ошибок без повторного указания функции-обработчика:

      Источник

      PEAR – PHP Extension and Application Repository


      Руководство для начинающих


      Автор: Дмитрий Димандт aka Mamut
      Источник: RSDN Magazine #5-2004

      Опубликовано: 30.03.2005
      Исправлено: 10.12.2016
      Версия текста: 1.0

      Что такое PEAR

      PEAR расшифровывается как P HP E xtension and A pplication R epository, база расширений и приложений для PHP. Но что же это действительно значит?

      Представьте, что Ваш проект использует MySQL в качестве базы данных. PHP предоставляет вам встроенные средства для работы – функции mysql_* или (начиная с версии 5.0) расширение mysqli. У вас есть десятки файлов, содержащих примерно следующий код:

      В один прекрасный день ваш шеф говорит, что политика компании изменилась, и что отныне вам придется иметь дело с Oracle, PostgreSQL или (боже упаси!) MSSQL. Что Вам приходится делать? Рвать на себе волосы и биться головой об стенку. Так как количество кода неимоверно, а слепая замена mysql_* на ora_* не пойдет.

      Тут вам в голову приходит, что изначально надо было бы все функции для работы с базой данных упаковать в какой-нибудь класс, выставив из него наружу только необходимое, например:

      Структурированная библиотека открытого кода

      Чтобы понять, что это такое, советую посмотреть список «пакетов», доступных в PEAR. Глаза разбегаются от разнообразия. Авторизация, работа с датами и временем, работа с файловой системой, базы данных, HTTP и так далее…

      Код в PEAR разделен на так называемые «пакеты» (packages). Каждый из пакетов – набор классов и утилит, написанных на PHP и представляющих собой решение какой-нибудь распространенной проблемы.

      Каждый пакет – детище одного или нескольких программистов, решивших облегчить жизнь самим себе, а в итоге облегчающих жизнь нам с Вами. Более того, пакеты, прошедшие тщательную проверку, включаются в дистрибутив PHP и получают название базового класса (PHP Foundation Class). Так, например, DB и HTTP являются базовыми классами PHP.

      Пакеты из PEAR освобождают от необходимости написания тривиальных или часто необходимых вещей. Так как эти пакеты написаны на чистом PHP, не придется требовать от провайдера, чтобы он устанавливал какие-либо дополнительные модули на сервере, где размещен ваш сайт. И главное. Они – бесплатные.

      Классы PEAR и PEAR_Error

      Б о льшая, но не вся, часть пакетов в PEAR опирается на классы PEAR и PEAR_Error, определенные в пакете… PEAR.

      Класс PEAR

      В версиях PHP меньше 5.0, и в пакетах, еще не перешедших на 5.0, этот класс эмулирует деструкторы в наследуемых классах.

      Для того чтобы эмуляция срабатывала, необходимо создавать объекты по ссылке, т.е.

      Этот класс имеет метод isError($obj), определяющий, является ли тот или иной объект объектом PEAR_Error.

      Класс PEAR_Error

      Используется для создания стандартизированых сообщений об ошибках.

      Установка

      Ниже приводится последовательность шагов, необходимых для использования пакетов PEAR, на примере пакета DB. Предупреждаю сразу, предложенный ниже способ отличается от официального (http://pear.php.net/manual/ru/installation.php). Предлагаемый мною способ универсален, работает на любых конфигурациях PHP и сервера.

      2. Распакуйте архив в какую-нибудь директорию.

      3. Для дальнейшей работы из всей кучи файлов понадобится только PEAR.php. Если в работе понадобятся платформенно-независимые системные функции (определение текущей ОС на сервере, рекурсивный обход директорий, удаление директорий и проч.), взгляните также на файл System.php.

      4. Создайте в структуре вашего сайта директорию pear/ и скопируйте PEAR.php туда. Теперь все готово к работе.

      5. Рассмотрим дальнейшие действия на примере использования в проекте пакета DB, служащего для унифицированого доступа к базам данных. Зайдите на http://pear.php.net/package/DB и скачайте этот пакет.

      Остановитесь и внимательно взгляните на эту страницу. Вы ее будете видеть еще не раз. Прежде, чем скачать какой-либо пакет, посмотрите на краткую информацию, которой он сопровождается.

      Summary – краткое описание пакета. Обычно – емкое название, его характеризирующее.

      License – лицензия, на условиях которой пакет выпускается. Несмотря на то, что пакеты в PEAR рекомендуется публиковать на условиях PHP License, некоторые пакеты выпускаются на условиях GNU Public License. На это стоит обратить внимание при работе над коммерческим проектом.

      Current Release – текущая версия пакета.

      Description – описание пакета.

      6. Распакуйте пакет DB.

      7. Скопируйте файл DB.php и поддиректорию DB/ в директорию pear/ вашего сайта.

      8. Откройте файл DB.php в вашем любимом редакторе, найдите строчку require_once ‘PEAR.php’; и сотрите ее. Сохраните файл.

      9. В корневом каталоге сайта создайте файл testdb.php. Структура сайта должна выглядеть примерно так:

      10. В файл testdb.php впишите следующее:

      11. Проверьте файл на работоспособность. Как видите – ни одной ошибки : ) Правда, это не значит, что все работает.

      12. Добавьте в файл testdb.php следущий код:

      Все. Теперь вы знаете, как подключить любой пакет из PEAR.

      Документация

      Как известно, программисты – тоже люди и ничто человеческое им не чуждо. Также им не чужда лень и патологическое нежелание писать документацию к своим творениям. Увы, авторы пакетов PEAR – не исключение, и полноценная документация к пакетам встречается нечасто.

      Неужели все так плохо? – спросите вы, окидывая взглядом необъятные просторы PEAR. Нет, на самом деле все не так плохо.

      Одним из условий принятия пакета в PEAR – ясный, хорошо документированый код. На основе исходников к каждому пакету автоматически генерируются описания классов и их методов, так что, как минимум, общее представление о пакете у вас все же будет. Авторы многих пакетов пишут дополнительную документацию, которая также прилагается к пакетам. Плюс, каждый пакет поставляется с примерами использования, или такие примеры можно легко найти в исходных кодах самого пакета (иногда описание классов и примеры занимают чуть ли не большую часть исходных файлов).

      Собранную на текущий момент документация по PEAR можно найти по адресу http://pear.php.net/manual/index.php.

      Будущее PEAR

      Многие, прочитав статью и увидев упор на решения, использующие базы данных, могут махнуть на PEAR рукой, указав на появившееся в PHP5 расширение mysqli. Другие, обнаружив, что PEAR бесплатен и разрабатывается на общественных началах, также махнут на него рукой и сядут разрабатывать свою собственную систему. Третьи, решив, что главная задача PEAR – эмуляция объектной ориентации (например, эмуляция деструкторов, предлагаемая классом PEAR), махнут рукой, забудут про PEAR и перейдут на PHP5.

      И те и другие, и третьи будут неправы. Появление на сцене PHP5 с новыми расширениями и улучшенной поддержкой объектно-ориентированого программирования никоим образом не влияет на PEAR, который прежде всего является базой готовых, работающих решений для очень большого спектра проблем.

      И так далее. Шифрование, авторизация, работа с изображениями, а также многое другое. Достаточно взглянуть на список предлагаемых пакетов (http://pear.php.net/packages.php).

      Основная задача разработчиков PEAR сейчас – стабилизация уже существующего кода и приведение всех пакетов в соответствие со стандартом (http://pear.php.net/manual/ru/standards.php). На сайте действует система отслеживания багов, где можно сообщить о найденных ошибках или предложить изменения/дополнения к существующим пакетам. Условия приема пакетов способствуют тому, что код в исходных файлах четко и ясно написан, а также документирован, что облегчает их использование. Состояние PEAR отслеживается в еженедельных публикациях на сайте разработчиков PHP – Zend Group, а «мертвые» (находящиеся в ранней стадии разработки и давно не обновляемые) пакеты удаляются из базы.

      PEAR – это динамичная развивающаяся среда, предлагающая все новые и новые решения разработчикам.

      Источник

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *