Instalação de Módulos Pear e Pecl

Artigo que explica o que são os módulos Pear e Pecl, e como podem ser instaladas extensões destes tipos no PHP.

PECL & PEAR

Pear (PHP Extension and Application Repository) é um sistema de pacotes para PHP que oferece ferramentas de alto nível para instalação, remoção ou atualização de pacotes. Basicamente, Pear oferece bibliotecas de código PHP para solução de problemas específicos, como geração de PDF, geração de imagens, manipulação de ID3 de MP3, etc.

Além disso, Pear possui um repositório chamado Pecl (PHP Extension Community Library), que é voltado para a instalação de extensões compiladas do PHP. A versão 5 de PHP é escrita em linguagem C, e foi proje­tada para incorporar novos módulos escritos em C. Com isso, é possível escrever e/ou utilizar código de alta performance para ser utilizado por scripts em PHP. Nada impede um programador de criar suas ferramentas usando a própria linguagem PHP, porém, como PHP não oferece recursos como ponteiros de C, alguns tipos de operações podem se tornar mui­to mais lentas.

Para utilização das ferramentas Pear e Pecl, é recomendado ler as instruções básicas nos seguintes links:

Os programas são semelhantes aos gerenciadores de pacotes do Linux como o YUM e o APT. Basicamente são executados os comandos:

$ pear install nome_do_pacote

ou

$ pecl install nome_do_pacote

No caso de pacotes do repositório Pecl, pode ser necessário baixar o pacote e utili­zar o comando phpize, conforme o exemplo (no Linux):

$ pecl download nome_do_pacote
$ tar zxvf pacote_baixado.tgz
$ cd diretorio_descompactado
$ phpize
$ ./configure
$ make
$ make install

Normalmente será necessário utilizar os comandos include ou require no código PHP para utilizar os módulos Pear, já que são códigos PHP colocados no diretório de include_path global, que é um diretório próprio para colocar scripts de inclusão.

Já os módulos Pecl, por serem compilados, ficam no servidor na forma de arquivo ".dll" (para Windows) ou ".so" (para sistemas semelhantes a Unix). Com isso, os coman­dos include e require não funcionam como esperado. Porém, é preciso incluir a cha­mada aos módulos externos através da diretiva "extension" no arquivo php.ini, conforme exemplo a seguir:

extension=rar.so

Note que só é informado o nome do arquivo, e não o caminho completo. Isso porque o caminho onde ficam as extensões já é guardada na diretiva "extension_dir".

Observação: algumas extensões exigem que sejam carregadas como um módulo Zend, ao invés de um módulo do PHP. Nestes casos, é necessário usar a diretiva "zend_extension" informando o caminho completo até o arquivo, conforme exemplo abaixo:

zend_extension="/usr/lib/extensions/no-debug-non-zts-20090626/xdebug.so"

Para que a extensão seja carregada dinamicamente, é necessário utilizar a função dl. Porém, esta função se tornou depreciada na versão 5.3 e será removida em futuras ver­sões de PHP.

Observações

Uma observação é que estes comandos, por padrão, não instalam versões beta ou alpha. Para fazer isso, inclua "-beta" ou "-alpha" após o nome do pacote desejado. Por exemplo:

$ pecl install Judy-beta

Outra possibilidade é informar uma versão específica para ser instalada. Neste caso, basta incluir esta versão após o nome do pacote, conforme exemplo:

$ pecl install Judy-0.1.2

2 comentários

Alexsandro Pereira disse...

Muito bom, já conheço dos dois pacotes, porem não sabia destinguir a diferença dos dois, agora sei que pearl são bibliotecas escritas em php e peacl são bibliotecas escritas em C