Codigo do buscadorCursos.php:
<?php
require 'vendor/autoload.php';
require 'src/Buscador.php';
use Alura\BuscadorDeCursos\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;
$cliente = new \GuzzleHttp\Client([ 'base_uri' => 'https://www.alura.com.br/', 'verify' => false ]);
$crawler = new Crawler();
$buscador = new Buscador($cliente,$crawler);
$cursos = $buscador->buscar(url:'/cursos-online-programacao/php');
foreach ($cursos as $curso) {
echo $curso . PHP_EOL ;
}
?>
Codigo do Buscador.php:
<?php
namespace Alura\BuscadorDeCursos;
use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;
class Buscador {
private $httpCliente;
private $crawler;
public function __construct(ClientInterface $httpCliente, Crawler $crawler){
$this->httpCliente = $httpCliente;
$this->crawler = $crawler;
}
public function buscar(string $url) : array{
$resposta = $this->httpCliente->request('GET', $url);
$html = $resposta->getBody();
$this->crawler->addHtmlContent($html);
$elementoscursos = $this->crawler->filter(selector:'span.course-card__name');
$cursos = [];
foreach($elementoscursos as $elemento){
$cursos [] += $elemento->textContent;
}
return $cursos;
}
}
?>
Ja tentei adicionar um echo dentro dos foreachs para ver se eles estavam rodando mas não,