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

Buscador.php - Autoload sem orientação-objeto (OO) funciona. Com OO não

Estou há horas tentando fazer isso funcionar, mas não estou conseguindo. Criei um arquivo buscar-cursos-OO.php para testar a funcionalidade utilizando a orientação a objetos, conforme aula. Não consigo superar o erro abaixo:

PHP Fatal error:  Uncaught Error: Class 'src\Buscador' not found in C:\Users\Andre\OneDrive\Em andamento\Projeto Programação\3 - PHP\07 - Composer\Arquivos\buscar-cursos-OO.php:12
Stack trace:
#0 {main}
  thrown in C:\Users\Andre\OneDrive\Em andamento\Projeto Programação\3 - PHP\07 - Composer\Arquivos\buscar-cursos-OO.php on line 12

Caminho dos meus arquivos no PC: C:\Users\Andre\OneDrive\Em andamento\Projeto Programação\3 - PHP\07 - Composer\Arquivos

Sendo a pasta Arquivos o diretório principal onde estão os arquivos composer e buscar-cursos, a pasta vendor está dentro de Arquivos. Hoje inclui a pasta scr dentro de vendor para ver se funcionava, mas tanto ela na raiz quanto em vendor, retorna o mesmo erro.

Código no Composer.json

"autoload": {
        "psr-4": {
            "Alura\\BuscadorDeCursos\\": "07 - Composer/Arquivos/"
        }
    }

Código buscar-cursos-OO.php

require 'vendor/autoload.php';

use src\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client(['base_uri' => 'https://www.alura.com.br/', 'verify' => false]);
$crawler = new Crawler();

$buscador = new Buscador($client, $crawler);
$cursos = $buscador->buscar('/cursos-online-programacao/php');

foreach ($cursos as $curso) {
    echo $curso . PHP_EOL;
}

Toda vez que eu alterei o caminho no composer.json eu rodei o composer dumpautoload

Agradeço a ajuda

2 respostas
solução!

Boa tarde,

No "use" tente colocar Alura\BuscadorDeCursos\Buscador e coloca a pasta src em 07 - Composer/Arquivos/

Oi Lucas, funcionou. Muito obrigado!