1
resposta

Dúvida sobre a não utilização do composer

Boa noite,

Existe a possibilidade de utilizar os seguintes componentes abaixo, para capturar informações na internet, sem precisar utilizar o composer? "symfony/http-client": "^5.0", "symfony/browser-kit": "^5.0", "symfony/css-selector": "^5.0"

1 resposta

Olá, Andre.

Sim, é possível. Porém as dificuldades nisso serão bem maiores, pois basicamente o composer é a ferramenta padrão para os projetos PHP.

Mesmo que seu projeto não seja Orientado a Objetos, e você deseja utilizar componentes de terceiros para auxiliar, você pode usar o comporser e chamar essas pacotes onde desejar, por exemplo:

Aqui um arquivo com códigos sem O.O.

<?php 

require_once __DIR__ . '/meu_aquivo_de_funcoes.php';

$dadosDados = obterDadosCliente();

echo exibir_tela($dadosDados);

Aqui um arquivo com códigos sem O.O, utilizando o componente symfony/css-selector.

<?php 

require_once __DIR__ . '/meu_aquivo_de_funcoes.php';

// aqui eu imagino que o projeto tenha que descer 2 níveis, para acessar o vendor e utilizar o autoload.
require_once __DIR__ . '../../vendor/autoload.php;

// importo o componente instalado pelo composer.
use Symfony\Component\CssSelector\CssSelectorConverter;

$dadosDados = obterDadosCliente();

// estou imaginando um tratamento qualquer no html
$converter = new CssSelectorConverter();
$html_fragmento = $converter->toXPath('div.item > h4 > a');


// aqui utilizando como segundo parâmetro da função, de forma lúdica, como se caso desejássemos modificar o html , basta informar da maneira que fizemos.
echo exibir_tela($dadosDados, $html_fragmento);

Vale salientar que para instalar os composnentes desejados, como por exemplo o que utilizei acima, temos que executar o seguinte comando por meio do terminal na raiz do projeto.

composer require symfony/css-selector

Estou tomando o pressuposto que você quer utilizar componentes de terceiro em um projeto que não usa PHPOO e que por sua vez tem grandes chances de ser estruturado, acredito que se for esse o cenário normalmente mais ideal seria refatorar para que todo o projeto seja PHPOO.

Outra dica, nunca mude o local de destino do diretório vendor, ou modifique quaisquer arquivos que lá contém. Deixe isso a cargo do composer, pois é ele quem deve gerenciar as dependências do seu projeto. Caso deseje por exemplo atualizar algum pacote, faça por meio do composer.

Por mais incrível e óbvio que isso pareça, já peguei projeto que foi modificado esses itens, e isso deixa o caos reinar no projeto.

Espero ter ajudado, qualquer dúvida vamos interagindo por aqui :)