Membuat Paket PEAR

Untuk yang biasa membuat program dengan menggunakan bahasa skripting PHP pasti tidak asing dengan PEAR. PHP Extension and Application Repository, disingkat PEAR, adalah sistem paket bahasa PHP yang digunakan untuk mempermudah penanganan koleksi pustaka. Tujuannya adalah untuk bisa menggunakan kembali fungsi-fungsi yang sering diperlukan, sehingga tidak perlu lagi copy-paste di berbagai tempat ketika diperlukan. Kita tinggal meng-include-kan pustaka yang diperlukan saja.

Untuk membuat paket seperti ini tidak sesulit yang dibayangkan. Penjelasan dalam tulisan ini dibuat pada sistem operasi Debian GNU/Linux. Untuk lingkungan lain, silahkan disesuaikan.

Misalkan saya mempunya file library yang disebut hello.php, isinya adalah:

<?php
echo "hello world!\n PEAR.";
?>

Untuk membuat paket PEAR diperlukan file bernama package.xml. Formatnya sesuai dengan file XML pada umumnya. Definisi tag-tag yang dikenal dalam file tersebut di deklarasikan pada DTD yang bisa didapat dari alamat http://pear.php.net/dtd/package-1.0. Berikut contohnya,

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
<package version="1.0">
<name>helloworld</name>
<summary>
a pear package
</summary>
<description>
this is an example how to make a pear package.
</description>
<license>public domain</license>
<maintainers>
<maintainer>
<user>salman</user>
<role>lead</role>
<name>Salman AS</name>
<email>sas@simpul.id</email>
</maintainer>
</maintainers>
<release>
<version>0.1.0</version>
<notes>
just a little notes
</notes>
<date>2013-12-10</date>
<state>alpha</state>
<filelist>
<file role="php" baseinstalldir="/">hello.php</file>
</filelist>
</release>
</package>

Kata kunci masing-masing tag sepertinya sudah bisa ditebak. Mungkin yang perlu dijelaskan disini adalah tag state, gunakan salah satu dari stable, beta, alpha, devel and snapshot. Kemudian tag filelist, dalam tag ini bisa berisi tag file maupun dir. Dalam tag dir bisa berisi tag dir yang lain maupun file. Attribute baseinstalldir untuk menentukan dimana file yang bersangkutan akan disalin.

Setelah selesai dibuat file-file yang diperlukan, uji file package.xml dengan perintah,

salman@argon:~/pear$ pear package-validate package.xml
Analyzing hello.php
Validation: 0 error(s), 0 warning(s)

Bila masih ditemui error, perbaiki file package.xml sampai tidak ada error sama sekali.

Setelah selesai buat paket dengan perintah,

salman@argon:~/pear$ pear package package.xml
Analyzing hello.php
Package helloworld-0.1.0.tgz done

Selamat Anda telah membuat paket PEAR yang berisi satu file hello.php

salman@argon:~/pear$ ls
hello.php  helloworld-0.1.0.tgz  package.xml

Untuk melihat informasi paket yang sudah dibuat gunakan perintah seperti ini,

salman@argon:~/pear$ pear info helloworld-0.1.0.tgz
About helloworld-0.1.0
======================
Provides            Classes:
Package             helloworld
Summary             a pear package
Description         this is an example how to make a pear package.
Maintainers         Salman AS <sas@simpul.id> (lead)
Version             0.1.0
Release Date        2013-12-10
Release License     public domain
Release State       alpha
Release Notes       just a little notes
Package.xml Version 1.0
Packaged With PEAR  1.9.1
Version

Selesai.