Pull to refresh

Pear Channel @ ( Google Code || SourceForge )

Reading time 3 min
Views 1.2K
Original author: bbieber
imagePEAR (акроним от английских слов PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом. В стандартную поставку PHP входит система управления классами PEAR, которая позволяет легко скачивать и обновлять их. Чтобы класс вошёл в PEAR он должен соответствовать очень жёстким правилам. Например, без особой необходимости нельзя создавать класс с такой же задачей, как у уже созданного. В рамках PEAR был создан специальный стиль оформления PHP-кода, которого должны придерживаться все классы в библиотеке. Этот стиль стал наиболее распространённым стандартом стиля PHP-кода в интернете. На английском языке «pear» означает «груша», которая и является логотипом проекта.

В нескольких статья попробуем рассмотреть как создать собственный PEAR канал с минимальными вложениями, создать и поддерживать пакеты распространяемые через него, а как же рассмотрим варианты применения PEAR канала не по прямому назначению: доставка и установка PHP приложения клиенту.

Обновлено: В настоящее время найден недавно появившийся баг не позволяющий использовать сторонние PEAR каналы привычным набором действий, но установка пакетов несмотря на это, возможна, который предположительно будет исправлен на ближайших выходных. Вот вариант установки пакета «напрямую», на примере неофициального канала Smarty:
pear install http://pear-smarty.googlecode.com/svn/tags/Smarty/Smarty-2.6.24.tgz
Требования:
В статье подразумевается что имя вашего проекта на Google Code: habrahabr, итак, тщательно помолясь:
Checkout from https://habrahabr.googlecode.com/svn, revision HEAD, Fully recursive, Externals included<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\wiki<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\trunk<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\branches<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\tags<br/>At revision: 1
Создадим канал для нашего проекта
C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr>php pearscs.phar create habrahabr.googlecode.com/svn habrahabr<br/><br/>Created habrahabr.googlecode.com/svn<br/> | ./channel.xml<br/> | ./rest/<br/> | ./get/
Зальем инициализированный канал на Google Code
Commit<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\channel.xml<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\get<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\pearscs.phar<br/>C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr\rest<br/>At revision: 2
Добавим созданный канал в локальный список каналов
C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr>pear channel-add channel.xml<br/>Adding Channel "habrahabr.googlecode.com/svn" succeeded
Ссылки:
P. S.
Автор оригинальной статьи рекомендует произвести следующие настройки в php.ini:
[phar]<br/>phar.readonly = 0<br/>phar.require_hash = 0
В процессе выяснилось что по некоторым причинам не работает рекомендуемый способ (channel-discover) добавления канала, так как якобы PEAR не может получить описание инициализированного нами канала, возможно это проблема в совместимости текущий версий PEAR и Coogle Code, или же платформозависима от моего окружения, так как получить содержимое требуемого файла можно как через браузер так и через file_get_contents():
C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr>pear channel-discover habrahabr.googlecode.com/svn<br/>Discovery of channel "habrahabr.googlecode.com/svn" failed (channel-add: Cannot open "http://habrahabr.googlecode.com/svn/channel.xml" (File http://habrahabr.googlecode.com:80/svn/channel.xml not valid (received: HTTP/1.1 404 Not Found)))
Так же выяснилось, что Zend Server для Windows не предоставляет dll для SQLite3, пришлось искать php_sqlite3.dll и php5ts.dll.

P. P. S
Случайное F5 убило всю статью, так что пришлось превозмочь желание забить болт и попытаться восстановить написанное, если вдруг я не упомянул какой-то важный шаг, дайте об этом знать, а так же если у вас уже есть опыт в создании собственного PEAR канала — поделитесь опытом. Так же предположительно это будет работать и на SourceForge, при этом создание канала примет следующий вид, учитывая что имя проекта на SourgeForge совпадает с выбранным для Google Code:
C:\Program Files (x86)\Zend\Apache2\htdocs\habrahabr>php pearscs.phar create habrahabr.svn.sourceforge.net/viewvc/habrahabr habrahabr<br/><br/>Created habrahabr.svn.sourceforge.net/viewvc/habrahabr<br/> | ./channel.xml<br/> | ./rest/<br/> | ./get/
К сожалению пока нет возможности проверить будет ли это работать на самом деле или нет.
Tags:
Hubs:
+5
Comments 3
Comments Comments 3

Articles