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 projetada 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 muito 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 utilizar 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 comandos include e require não funcionam como esperado. Porém, é preciso incluir a chamada 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 versõ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
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
Parabéns, me ajudou bastante. Agradecido! :)
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com