2
respostas

Instalando a Extensão DS no Linux com várias versões do PHP instaladas

Compartilho com os demais colegas como consegui instalar a extensão DS no Ubuntu 20.04, onde tenho várias versões do PHP instaladas.

O exemplo a seguir usa a versão 7.4 do PHP, acredito que na versão 8.0 não precise passar o número da versão e se essa for a única versão que você tem instalado não vai passar trabalho, mas pra quem travou nessa parte segue abaixo:

# Instale as ferramentas necessárias para construir a extensão
 sudo apt-get install git build-essential php7.4-dev

# Clone o respositório da extensão:
git clone https://github.com/php-ds/extension "php-ds"

# Entre no diretório que acabou de clonar:
cd php-ds

# Utilize o phpizeX.X (versão do PHP no qual a extensão será instalada) para preparar a extensão para ser compilada:
phpize7.4

# Passe as configurações do php-config da versão desejada do PHP:
./configure --with-php-config=/usr/bin/php-config7.4

# Compile a extensão
make
make install

# Limpe os arquivos que não são mais necessários
make clean
phpize7.4 --clean

Agora o pulo do gato:

# Já entra em modo root:
sudo su -

# Vai na pasta do php da versão desejada (no exemplo foi usada a 7.4)
cd /etc/php/7.4/cli/conf.d

# Crie o arquivo que vai carregar a extensão:
touch 30-ds.ini

# Edite o arquivo
vim 30-ds.ini

# Aperte i e CTRL+SHIFT+V para colar as 3 linhas a seguir:

; configuration for php ds module
; priority=30
extension=/usr/lib/php/20190902/ds.so

# Agora aperte ESC, : (dois pontos), x e pressione ENTER para salvar e sair (ou CTRL+Z seguido de Z...ou :wq)
# Fazemos isso isso por que a extensão DS requer a extensão JSON, que por padrão é carregada após a DS, então a DS não encontra o requerimento quando é carregada e dá problema, então colocamos a DS no final da fila, quando a JSON e todas as outras extensões já foram carregadas.

Se alguém travou nesse cenário inusitado como eu, espero que esse mini tutorial ajude, estou sempre aberto a correções caso tenho escrito alguma instrução errada não hesite em falar. = )

2 respostas

Opcionalmente, para o PHPStorm reconhecer a nova classe:

# Na pasta do projeto execute:
composer require php-ds/php-ds

Olá, Guilherme! Tudo bem com você? Espero que sim!

Peço desculpa pela demora para responder o seu tópico.

Muito obrigado por compartilhar o seu tutorial de instalação da extensão DS no Ubuntu. Tenho certeza de que muitas pessoas vão se beneficiar dessas instruções detalhadas.

É ótimo ver que você encontrou uma solução para esse cenário inusitado e está disposto a ajudar os outros colegas com correções e dicas adicionais. A comunidade de programadores é realmente incrível quando se trata de compartilhar conhecimento e ajudar mutualmente.

Continue assim, sempre disposto a compartilhar o que você aprendeu e a ajudar os outros. Tenho certeza de que você está contribuindo para o crescimento e sucesso de muitas pessoas.

Se surgirem mais dúvidas ou se você tiver mais dicas para compartilhar, não hesite em perguntar ou compartilhar aqui no fórum. Estou aqui para ajudar no que for possível.

Grande abraço e bons estudos!