• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

PHP além do composer: Gerenciamento de Extensões PHP: Do PECL ao Moderno PIE

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,483
Баллы
155


Quando falamos sobre gerenciamento de dependências em PHP, o

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

é, sem dúvida, a primeira ferramenta que vem à mente. No entanto, o ecossistema PHP é muito mais vasto e não se limita a pacotes e bibliotecas em

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. Existem também as extensões, módulos de software que operam em um nível mais fundamental, e compreender seu papel é crucial para qualquer desenvolvedor que deseje extrair o máximo de performance e funcionalidade da linguagem.

Neste post, vamos explorar o universo das extensões PHP, entender suas diferenças em relação aos pacotes Composer e apresentar as ferramentas utilizadas para gerenciá-las, desde o tradicional

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

até o moderno

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

(PHP Installer for Extensions).

Qual a diferença entre Pacotes Composer e Extensões PHP?


Para um desenvolvedor PHP, é fundamental distinguir entre os dois tipos de dependências:


  • Pacotes Composer: São bibliotecas escritas majoritariamente em PHP. Elas rodam em

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    e são gerenciadas pelo projeto, sendo instaladas no diretório vendor/. O Composer resolve as versões e o autoloader do PHP se encarrega de carregá-las sob demanda.


  • Extensões (PECL/PIE): São módulos compilados, geralmente escritos em C/C++, que se integram diretamente à engine do

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    . Elas não são instaladas no diretório vendor/, mas sim no ambiente do sistema. Para que o PHP possa utilizá-las, é necessário compilá-las, instalá-las e, por fim, habilitá-las no arquivo de configuração php.ini.
Por que e quando utilizar extensões?


A decisão de usar uma extensão em vez de uma biblioteca PHP pura geralmente se baseia em três necessidades principais:

  1. Performance Crítica: Para operações computacionalmente intensivas (

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    ) ou que exigem alta vazão de dados (

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    ), como manipulação de imagens, criptografia ou compressão de dados, as extensões oferecem uma performance em ordens de magnitude superior, pois executam código nativo compilado.
  2. Bindings para Bibliotecas Externas: Quando é preciso interagir com bibliotecas de sistema ou serviços externos que não possuem uma interface nativa em PHP (por exemplo, drivers de banco de dados como o Redis, ou bibliotecas de processamento de imagem como a ImageMagick), as extensões atuam como uma "ponte" (binding), permitindo que o código PHP invoque funcionalidades de baixo nível.
  3. Acesso a Funcionalidades do Sistema Operacional: Algumas tarefas exigem acesso a recursos que não são expostos diretamente no

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    do PHP. Extensões podem prover essa ponte de forma segura e eficiente.
Ferramentas para Instalação de Extensões


Existem duas ferramentas principais para gerenciar o ciclo de vida de extensões PHP.

PECL: O Repositório Comunitário de Extensões


O PECL (PHP Extension Community Library) é o repositório "clássico" para distribuição de extensões PHP. Ligado ao projeto

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, ele oferece um vasto catálogo de extensões mantidas pela comunidade.

O fluxo de instalação via PECL é, tipicamente, manual e vinculado ao sistema:

  1. Instalação de dependências: É preciso ter as ferramentas de compilação (build-essential, php-dev, php-pear).
  2. Instalação da extensão: O comando pecl install <nome-da-extensao> baixa o código-fonte e o compila.
  3. Configuração: A extensão compilada (.so) deve ser habilitada no php.ini com a diretiva extension=<nome-da-extensao>.so.
  4. Reinicialização do serviço: O servidor web ou o processo PHP-FPM deve ser reiniciado para carregar a extensão.

Exemplo prático com PECL (instalando a extensão do Redis):


# 1. Instalar dependências do sistema (exemplo para Debian/Ubuntu)
sudo apt update
sudo apt install php-pear php-dev build-essential

# 2. Instalar a extensão
sudo pecl install redis

# 3. Habilitar no php.ini
# Adicione a linha abaixo ao seu arquivo php.ini
extension=redis.so

# 4. Reiniciar o serviço
sudo service php-fpm restart



PIE: O Instalador Moderno para Extensões


O PIE (PHP Installer for Extensions) é uma ferramenta moderna que visa simplificar e modernizar o gerenciamento de extensões. Distribuído como um arquivo PHAR, ele se assemelha ao Composer em sua filosofia, focando no gerenciamento de extensões por projeto.

Vantagens do PIE:

  • Workflow similar ao Composer: Facilita a adoção por desenvolvedores já familiarizados com o gerenciamento de pacotes.
  • Automação: Instala e compila automaticamente as extensões necessárias para um projeto, com base em um arquivo de configuração.
  • Portabilidade: Sendo um PHAR, é fácil de distribuir e verificar, o que o torna ideal para ambientes de integração contínua e deploy.
  • Alinhamento com práticas modernas: Abstrai a complexidade da compilação manual e da configuração do php.ini.

Exemplo prático com PIE:


# Instala as extensões faltantes listadas no projeto
php pie.phar install

# Ou, de forma explícita (após adicionar o pie.phar no $PATH)
pie install vendor/ext-name



Código de Exemplo: Utilizando a Extensão do Redis


Após instalar a extensão do Redis (seja via PECL ou PIE), você pode utilizá-la em seu código PHP da seguinte forma:


<?php
try {
// Cria uma nova instância da classe Redis, que agora está disponível
$redis = new Redis();

// Conecta ao servidor Redis
$redis->connect('127.0.0.1', 6379);

// Executa comandos
$redis->set('chave_exemplo', 'Olá, mundo das extensões PHP!');
$valor = $redis->get('chave_exemplo');

echo $valor; // Saída: Olá, mundo das extensões PHP!

} catch (RedisException $e) {
echo 'Erro ao conectar ou executar comando no Redis: ' . $e->getMessage();
}



Conclusão


Embora o Composer seja a ferramenta padrão para a maioria das necessidades de um projeto PHP, as extensões continuam sendo um recurso indispensável para tarefas que exigem alta performance e integração com sistemas de baixo nível.

Ferramentas como o PECL e, mais recentemente, o PIE, fornecem os meios para gerenciar essas poderosas adições ao runtime do PHP. Conhecer e saber quando utilizar extensões é um diferencial que permite aos desenvolvedores construir aplicações mais robustas, eficientes e capazes, explorando todo o potencial que a linguagem PHP tem a oferecer.

Referências

Escrito por

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, mas com correções ortográficas e de coesão feitas por LLM.


Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу