Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Inseri o comando require 'vendor\autoload.php'; e continua não achando a classe Client

Inseri o comando require 'vendor\autoload.php'; e continua não achando a classe Client

5 respostas

Fala, Carlos.

Preciso de mais detalhes pra poder te ajudar. rsrsrs

Como está seu código? Qual o erro exibido?

<?php

require 'vendor\autoload.php';

use Guzzlehttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client();
$resposta = $client->request('GET', 'https://www.alura.com.br/cursos-online-programacao/php');

$html = $resposta->getBody();

$crawler = new Crawler($html);
$crawler->addHtmlContent($html);

$cursos = $crawler->filter('span.card-curso__nome');

foreach ($cursos as $curso){
    echo $curso->textContent . PHP_EOL;
}
?>

Ai está o código. Estou usando o Eclipse como editor. O erro aparece antes e depois de incluir o comando. Parece que a inclusão do comando não causou nenhum efeito.

PHP Fatal error:  Uncaught Error: Class 'Guzzlehttp\Client' not found in C:\Users\tr301320\Documents\Alura\php\buscador-cursos-alura\buscar-cursos.php:8
Stack trace:
#0 {main}
  thrown in C:\Users\tr301320\Documents\Alura\php\buscador-cursos-alura\buscar-cursos.php on line 8

Já consegue fazer uma avaliação? Grato.

Prezado, o autoload não está sendo realizado. Pesquisei na internet e vi vários problemas como esse, mas nenhuma das propostas de resolução funcionou para mim.

Uma delas foi executar o comando composer dumpsutoload.

Outra foi excluir a pasta vendor e o arquivo composer.json e executar composer install, composer update . Fiz e não funcionou.

Vi um vídeo onde mostrava uma referência ao autoload no arquivo composer.json e no meu não existe essa referência. Como nos vídeos do Alura não falava para inserir isso não fiz, imagino que ia acabar nado problema na aplicação inteira.

Não tenho conhecimento de php suficiente para pensar de forma efetiva nesse problema (por isso estou fazendo o curso). Normalmente esses problemas técnicos tem soluções pontuais. E é muito chato ter que perder tempo com isso.

Fala, Carlos.

A pasta vendor existe no mesmo nível do seu arquivo? Se sim, dentro dela estão os arquivos do Guzzle?

O problema não é o autoload não ser realizado, ao meu ver. Aparentemente os arquivos não foram baixados.

Consegue me mandar um print da sua árvore de diretórios?

solução!

Prezado, deu certo. Consegui resolver aqui. Obrigado.