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

Fatal error: Class 'Symfony\Component\DomCrawler\Crawler' not found in H:\xampp\htdocs\buscador-cursos-alura\buscar-cursos.php on line 12

Boa noite a todos!

Após executar no terminal o comando para listar os cursos: php buscar-cursos.php Além de não trazer os cursos, apresentou erro informando que a classe referente ao Dom Crawler não foi encontrada, sendo que houve a instalação dela via terminal através do pacote disponível no Packagist.

O código se encontra da seguinte forma:

<?php
require 'vendor/autoload.php';

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

$client = new Client(['verify' => false]);
$resposta = $client->request('GET', 'https://www.alura.com.br/cursos-online-mobile/ios');

$html = $resposta->getBody();

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

$cursos = $crawler->filter('span.card-curso__nome');
foreach ($cursos as $curso) {
    echo $curso->textContext . PHP_EOL;
}
{
    "name": "massau/buscador-cursos",
    "description": "Projeto que busca os cursos no site da Alura",
    "type": "library",
    "authors": [
        {
            "name": "JoyceMassau"
        }
    ],
    "require": {
        "guzzlehttp/guzzle": "^6.5",
        "symfony/dom-crawler": "^4.2"
    }
}
3 respostas

Vi aqui que deu erro na instalação do symfony/css-selector pois eu uso o PHP 5.6 e ele suporta a partir do PHP 7 Instalei as duas versões do PHP no xampp, alterando o nome do diretório da versão mais atual para "php7" para não conflitar, alterei as variaveis de ambiente, e quando digito os comandos "php -v" ou "php7 -v" no terminal ele reconhece ambos, mas ainda não me permite instalar o css selector

solução!

Olá, Joyce. Realmente não recomendo a utilização de XAMPP. Esse tipo de ferramenta traz muito mais problemas do que soluções. E recomendo menos ainda utilizar versões tão antigas do PHP.

Minha sugestão é: Instale o PHP 7.4 diretamente em sua máquina (super fácil) ou utilize uma imagem oficial para Docker.

:-)

Obrigada, deu certo com a versão 7 do PHP.