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

Não esta funcionando meu autoload....

" <?php

namespace Alura\BuscadorDeCursos;

class Buscador{

private $httpClient; private $crawler;

public function __construct( $httpClient, $crawler)
{

  $this->httpClient = $httpClient;
  $this->crawler = $crawler;



}

  function buscar ($url){

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

    $html = $resposta->getBody();


    $this->crawler->addHtmlContent($html);

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

     $elementos = [];

     foreach ($cursos as $curso){

       $elementos []  =$curso->textContent . PHP_EOL;

       }

          return $elementos;

  }
'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; echo"
"; } ?>

{ "name": "alura/buscador", "description": "buscador de cursos", "type": "library", "license": "MIT",

"authors": [
    {
        "name": "keke",
        "email": "xxxx@hotmail.com"

    }
],

"require": {
    "guzzlehttp/guzzle": "^6.5",
    "symfony/dom-crawler": "^5.1",
    "symfony/css-selector": "^5.1"

},


"autoload": {
    "psr-4": {
        "Alura\\BuscadorDeCursos\\": "src/"
    }
}

} "

8 respostas

Olá, Clayton. Você postou seu código mas se esqueceu de dizer qual o problema.

:-D

O que você tá tentando executar e o que tá acontecendo

Olá,tudo bem?

Eu fiz todo o passo a passo como no vídeo mas mesmo assim meu autoload com psr-4 não identifica a classe

solução!

Você deu o composer dump-autoload?

Clayton, posta mais detalhes, por favor.

Exatamente o que você está tentando executar o que erro, exatamente, está sendo exibido?

Então... Fiz todos passo a passo do vídeo para inserir a classe no autoload psr-4 ,porém quando executo o script retorna o erro de classe não encontrada já utilizei o comando dumpautoload e dump-autoload , mas quando utilizo o classmap funciona.Isso acontece na classe buscador

Clayton, você marcou a resposta como solucionada, mas aparentemente continua com erro.

Sempre que for postar código aqui, coloca entre 3 crases (`) que assim a gente consegue analisar melhor o código.

Se você ainda estiver com erro, pode mandar um print, por favor?

Olá, Professor Vinicius me desculpa qualquer coisa sou novo na plataforma e estou aprendendo a mexer . Eu estou com um problema com autoload psr-4 eu fiz tudo como no video , porém ainda continua mostrando esse erro " Fatal error: Uncaught Error: Class 'Alura\BuscadorDeCursos\Buscador' not found in C:\Users\Clayton\Documents\Projeto\BuscadorDeCursos\buscador-cursos.php:12 Stack trace: #0 {main} thrown in C:\Users\Clayton\Documents\Projeto\BuscadorDeCursos\buscador-cursos.php on line 12" . Utilizei o comando dump-autoload, dumpautoload, mas mesmo assim não resolve. Para teste utilizei o classmap e funcionou perfeitamente.

obs: estou impressionado com a agilidade com as respostas parabéns...

{
    "name": "alura/buscador",
    "description": "buscador de cursos",
    "type": "library",
    "license": "MIT",






    "authors": [
        {
            "name": "keke",
            "email": "xxxx@hotmail.com"

        }
    ],

    "require": {
        "guzzlehttp/guzzle": "^6.3",
        "symfony/dom-crawler": "^4.2",
        "symfony/css-selector": "^4.2"
    },
    "autoload": {
        "psr-4": {
            "Alura\\BuscadorDeCursos\\": "src/"
        }
    }
    }

<?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();

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

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

?>
<?php

namespace Alura\BuscadorDeCursos;

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

class Buscador
{

    private $httpClient;

    private $crawler;

    public function __construct($httpClient,  $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;
    }
}

Clayton, você pode colocar esse projeto no Github pra eu dar uma olhada? A princípio tá tudo certo..