Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Fatal error: Uncaught Error: Class "Alura\BuscadorDeCursos\Buscador"

Estou na aula (08 Extraindo classe) e literalmente copiei o código pois já tentei todos os modos e consultei tbm as soluções dessa mesma dúvida aqui no fórum do alura mas infelizmente não consegui seguir adiante. Esse é o erro que tenho quando executo meu código

Fatal error: Uncaught Error: Class "Alura\BuscadorDeCursos\Buscador" not found in C:\xampp\htdocs\buscador-cursos-alura\buscar-cursos.php:14 Stack trace:

Buscador.php

<?

namespace Alura\BuscadorDeCursos;

use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;

class Buscador
{
    /**
     * @var ClientInterface
     */
    private $httpClient;
    /**
     * @var Crawler
     */
    private $crawler;

    public function __construct(ClientInterface $httpClient, Crawler $crawler)
    {
        $this->httpClient = $httpClient;
        $this->crawler = $crawler;
    }

    public function buscar(string $url): array
    {
        $resposta = $this-> httpClient->request('GET', '$url');

        $html = $resposta->getBody();
        $this->crawler->addHtmlContent($html);

        $elementosCursos = $this->crawler->filter('span.card-curso__nome');
        $cursos = [];

        foreach ($elementosCursos as $elemento) {
            $cursos[] = $elemento->textContent;
        }

        return $cursos;

    }


}

buscar-cursos.php

<?php

require 'vendor/autoload.php';
require 'src/Buscador.php';


use Alura\BuscadorDeCursos\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

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

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

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

Composer.json

    "autoload": {
        "psr-4": {
            "Eduardoafonso1\\BuscadorCursos\\": "src/"
        }
    }
1 resposta
solução!

Buscador.php

  $resposta = $this->httpClient->request('GET', $url);

Baixei os códigos da aula para poder comparar e notei que a variável $url deveria estar fora dos ' ' provavelmente o cansaço n me permitiu ver esse gigantesco detalhe...