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

Erros no Buscador.php e no buscar-cursos.php

Boa tarde. Estou levando erros nos códigos-fonte citados acima.

Como eu estava tendo erros baixei o projeto do site e continuei com os erros.

Meu projeto está na pasta C:\Alura

Podem verificar o que há de errado? Obrigado desde já!

Segue o buscar-cursos.php:

<?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;
    }
}

Os erros Undefined type 'GuzzleHttp\ClientInterface'. Undefined type 'Symfony\Component\DomCrawler\Crawler'.

No Buscadort.php:

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;
    }
}

Erros:

Undefined type 'GuzzleHttp\ClientInterface'.

Undefined type 'Symfony\Component\DomCrawler\Crawler'.

6 respostas

Franklin, você instalou as ddependências com o composer?

Instalei sim, Vinicius.

Consegue mandar um print do erro acontecendo, Franklin? Pra eu saber como você está executando o projeto...

Fui rodar agora e deu outro erro:

PS C:\Alura> php buscar-cursos.php PHP Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:186 Stack trace:

#0 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(149): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)

#1 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(102): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))

#2 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))

#3 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Requ in C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 186

Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:186 Stack trace:

#0 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(149): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)

#1 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(102): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))

#2 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))

#3 C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Requ in C:\Alura\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 186

solução!

Pefeito, Franklin. Esse problema já foi solucionado aqui:

https://cursos.alura.com.br/forum/topico-curl-error-60-ssl-certificate-problem-85798

Obrigado. Vou ver.