2011年12月27日 星期二

[PHP] 如何使用 Onion 建置 PEAR 套件

以往要建置 PEAR 套件,得先研究 package.xml 的規格,然後使用一個超過 200 多行的樣板一行一行修改,若是檔案一多,更是麻煩。
因此 Onion https://github.com/c9s/Onion 是為了解決 PEAR 套件建置所提供的方案。
首先請確認你的程式碼目錄結構
  • src/ 類別目錄
  • doc/ 文件目錄
  • tests/ 單元測試目錄
你的類別名稱與名稱空間需要遵守 PSR-0 的規範,例如以下的類別:
<?php
namespace Foo;
class Bar {
}
應該被放置在 src/Foo/Bar.php 檔案中。
測試相關的檔案可放置於 tests/,一般來說都是使用 PHPUnit 作為測試框架,你也可以使用 PHPUnit_TestMore 來幫助你簡化測試程式碼。
接著即可建立 package.ini 來建置 PEAR 套件。
於套件目錄下,編輯 package.ini 檔案
[package]
name = PacakgeName
version = 0.0.1
desc = description here
summary = summary here
author = Author Name <your_email@email.com>
如果你的套件相依其他 PEAR 模組,可接著定義:
[require]
pear.twig-project.org/Twig = 1.0.1
格式為:
{PEAR Channel Host}/{Package Name} = {Version Expression}
接著,將 Onion.phar 抓取下來裝置於你的系統中:
$ wget https://github.com/c9s/Onion/raw/master/onion.phar
$ chmod +x onion.phar
$ ./onion.phar -d build
即可建置 PEAR 套件檔案。 PackageName-0.0.1.tgz 就會被產生出來。
你也可以透過 PEAR Installer 直接安裝該套件:
$ sudo pear install -f package.xml
若你希望將相依性安裝至該套件目錄,且不需要 root 權限,你可以執行:
$ ./onion.phar -d bundle 
相依套件就會被安裝至 vendor/pear 內。
Onion on GitHub: https://github.com/c9s/Onion