Artigos de Tecnologia e Negócios > Programação

PHP e gerenciamento de pacotes com PECL

Giovanni Tempobono
Giovanni Tempobono

Nesse artigo vou mostrar como adicionar extensões através do repositório central de extensões o PECL.

Estou desenvolvendo um blog usando PHP e quando acesso a primeira página, os posts mais recentes eram exibidos e, por baixo dos panos, eles eram obtidos através de um banco de dados responsável por armazenar o conteúdo.

Para o PHP conseguir conectar em um banco de dados, preciso informar o nome do banco de dados, juntamente com o usuário e senha. Coloquei essas informações no código fonte, porém, após um tempo precisei mudar a senha do banco de dados e tive que modificá-la no código.

Depois disso, percebi que é ruim que estes dados fiquem no código, pois uma alteração neles implica em uma mudança direta no código fonte.

Procurando maneiras para melhorar essa questão, descobri que é uma boa prática guardar estes dados em um arquivo separado em um formato como XML, JSON ou YAML. Entre esses tipos de formato, escolhi o YAML, por ter uma sintaxe mais simples de ler.

mysql:
    nomebanco: blog
    usuario: admin
    senha: senhasegura

Precisei ler este arquivo a partir do nosso programa PHP. Como a documentação da biblioteca YAML apresenta a função yaml_parse_file para ler um arquivo YAML, então usei a função:

<?php

$dados = yaml_parse_file('teste.yaml');

var_dump($dados);

Quando executei o programa no meu computador, ao invés dele funcionar, o seguinte erro foi impresso na tela:

O que aconteceu? O PHP disse que a função yaml_parse_file não existe. Pesquisando um pouco na internet, vi que YAML não faz parte da distribuição padrão do PHP, já que é uma extensão.

E como podemos adicionar esta extensão no PHP?

Extensões no PHP

Quando precisamos realizar alguma operação que exija alta performance, como no meu caso de processar um arquivo YAML, e queremos que isso seja feito da forma mais rápida possível, podemos utilizar uma extensão do PHP.

Existe um repositório online de extensões da linguagem PHP disponíveis para download chamado PECL (PHP Extension Community Library), que é equivalente ao Composer, só que armazena extensões e não bibliotecas.

Como estou utilizando Linux, instalei o PECL utilizando o comando:

apt-get install php-pear

No caso do Windows, utilizando o XAMPP, o PECL já deve estar instalado. No Mac, é necessário utilizar o Homebrew e para instalar o PHP junto com o PECL, é necessário utilizar o seguinte comando:

brew install php73 --with-pear

Com o PECL instalado, agora vamos procurar pelo YAML.

Utilizando o PECL

Para utilizar o PECL, ele oferece somente uma interface por linha de comando, para procurar pela extensão YAML utilizei o seguinte comando:

pecl search yaml

Para instalá-lo, o comando:

pecl install yaml

Legal! A extensão foi instalada e no terminal teve a seguinte saída:

Quando utilizei o comando para instalar, a última linha mencionou que eu deveria adicionar “extension=yaml.so” para o arquivo php.ini. O que isso quer dizer?

Existe um arquivo de configuração do PHP chamado php.ini, onde estão armazenadas todas as configurações que são aplicadas a tempo de execução no interpretador da linguagem e as extensões que devem ser carregadas.

Às vezes pode ser um pouco complicado de encontrar este arquivo, pois, em algumas instalações do PHP, podem existir mais de um php.ini, já que ele pode ser encontrado de duas maneiras: na linha de comando e pelo servidor web. Primeira maneira com o terminal

Para exibir as informações de configuração do PHP no meu computador, abri o terminal e digitei o comando:

php -i Com o qual obtive o seguinte retorno:

No meio desse monte de linhas, procurei pelo seguinte texto:

Loaded Configuration File => /etc/php/7.2/cli/php.ini

Isso mostra o diretório do arquivo de configuração que foi carregado. Porém, estava um pouco difícil de encontrar essa linha. Para facilitar, decidi copiar o texto e colar em um editor de texto, como o Visual Studio Code, para utilizar a função de busca. Segunda maneira com um arquivo php

Na minha máquina também estava utilizando o PHP na web, que é utilizado para exibir páginas de websites, para obter as informações de execução abri um arquivo com a extensão .php e digitei o seguinte código:

<?php

phpinfo();

?>

uando acessei este arquivo, apareceu a seguinte tela, que mostra a configuração Loaded Configuration File com o arquivo php.ini utilizado:

Na linha Loaded Configuration File, o nome do arquivo retornado foi /etc/php/7.2/cli/php.ini, com o nome do arquivo em mãos, abri ele em um editor de código e no final do arquivo e incluí a linha que havia sido pedida.

extension=yaml.so

Agora que consigo utilizar a função que lê o arquivo YAML, executando aquele código que foi citado no começo do deste post, consigo transformar este arquivo de configuração em um array do PHP e assim, utilizá-lo no meu blog.

Caso eu precise remover a extensão, preciso utilizar o seguinte comando:

pecl uninstall yaml

E para finalizar, precisei remover a chamada da extensão no arquivo de configuração php.ini para que o PHP não tente mais executar esta extensão.

Conclusão

Existem funcionalidades da linguagem PHP, como a de ler arquivos YAML, que por razões de performance não podem ser escritas em PHP e distribuídas como uma biblioteca no Composer,mas podem ser escritas como extensões da linguagem.

Para instalar esta extensão utilizei o PECL, que é o repositório central de extensões da linguagem PHP. O PECL possui uma interface via linha de comando, no qual executei o comando para instalar a extensão YAML e depois, incluí ele no arquivo de configuração do PHP.

Com isso você estará preparado para utilizar o PECL e instalar extensões do PHP! Gostou do post? Por que não dar uma olhada nos cursos de PHP da Alura? Você poderá aprender sobre muitas ferramentas importantes do PHP moderno como o Composer, Doctrine e Laravel!

Leia também:

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 1045 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1045 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1045 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1045 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana