segui todos os passos da aula e mesmo assim o php nao encontra a classe, segue os arquivos:
composer.json:
{
"name": "gabrieldav1108/buscador-cursos",
"description": "projeto que busca os cursos no site da Alura",
"type": "library",
"autoload": {
"psr-4": {
"Alura\\BuscadorCursos\\": "src/"
}
},
"authors": [
{
"name": "Gabriel Davila",
"email": "gabrielsdavila2@gmail.com"
}
],
"require": {
"guzzlehttp/guzzle": "^7.8",
"symfony/dom-crawler": "^7.0"
}
}
buscar-cursos.php:
<?php
require 'vendor/autoload.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->textContent . PHP_EOL;
}
Buscador.php:
<?php
namespace Alura\BuscadorDeCursos;
use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;
class Buscador{
private $httpsClient;
private $crawler;
public function __construct(ClientInterface $httpClient, Crawler $crawler){
$this->httpsClient = $httpClient;
$this->crawler = $crawler;
}
public function buscar(string $url): array{
$response = $this->httpsClient->request('GET', $url);
$html = $response->getBody();
$this->crawler->addHtmlContent($html);
$elementosCursos = $this->crawler->filter('span.card-curso__nome');
$cursos = [];
foreach($elementosCursos as $elemento){
$cursos[] = $elemento->textContent;
}
return $cursos;
}
}
erro exibido:
PS C:\Users\User\Documents\Cursos\PHP\Composer\buscador-cursos-alura> php .\buscar-cursos.php
PHP Fatal error: Uncaught Error: Class "Alura\BuscadorDeCursos\Buscador" not found in C:\Users\User\Documents\Cursos\PHP\Composer\buscador-cursos-alura\buscar-cursos.php:11
Stack trace:
#0 {main}
thrown in C:\Users\User\Documents\Cursos\PHP\Composer\buscador-cursos-alura\buscar-cursos.php on line 11
Fatal error: Uncaught Error: Class "Alura\BuscadorDeCursos\Buscador" not found in C:\Users\User\Documents\Cursos\PHP\Composer\buscador-cursos-alura\buscar-cursos.php:11
Stack trace:
#0 {main}
thrown in C:\Users\User\Documents\Cursos\PHP\Composer\buscador-cursos-alura\buscar-cursos.php on line 11