6
respostas

Erro ao executar php artisan serve

chegando na parte de login do projeto, não estou consegundo prosseguir. Tive algumas orientações mas não deu certo. E agora nem o servidor esta subindo mais.. por gentileza, poderiam me ajudar?

Fatal error: Uncaught exception 'ReflectionException' with message 'Class estoque\Console\Kernel does not exist' in /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php:734 Stack trace:

0 /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(734): ReflectionClass->__construct('estoque\Console...')

1 /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(629): Illuminate\Container\Container->build('estoque\Console...', Array)

2 /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\Container\Container->make('estoque\Console...', Array)

3 /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php(230): Illuminate\Foundation\Application->make('estoque\Console...', Array)

4 /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/ in /Users/Flavio/Documents/Projetos/PHP/estoque/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 734

Obrigado.

6 respostas

Fávio, esse erro começou acontecer em qual momento ? me passe mais informações para que eu consiga lhe ajudar.

Quando cheguei na parte de autenticação. Por conta de diferença de versões, não estava acertando essa parte e comecei a pedir orientação pelo forum... fui aplicando as orientações... nenhuma deu certo e depois começou a dar esses erros. Com ctza fiz algo errado.

?????

Edit 1:

Revisei aqui o material da aula e meu palpite é que o namespace esteja errado no arquivo estoque/Console/Kernel.php. Originalmente a pasta é app/, e no curso o professor alterou para estoque/. Ou o arquivo Kernel não exista.

Veja também os bindings no arquivo bootstrap/app.php

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

Post original:

Fatal error: Uncaught exception 'ReflectionException' with message 'Class estoque\Console\Kernel does not exist'

No Laravel, uma ReflectionException acontece quando o framework não consegue achar a classe implicitamente, por meio de dedução (Reflection), ou consulta ao vendor/autoload.php do Composer. Acontece quando você cria manualmente uma classe mas não informa o Laravel, por meio do Composer, que você fez isso. Ou ainda, quando cria a classe, mas muda ela de lugar.

Faça isso:

- composer update && composer dump-autoload (ou execute cada comando por vez)

- php artisan optimize (opcional)

Provavelmente não será necessário mas, se isso não funcionar, faça:

- Adicione a class diretamente no composer.json:

"autoload-dev": {
    "classmap": [
    // ...
        "insira/aqui/caminho/para/classe.php"
    ]
},

Não me parece comum, mas suponho que o caminho da class perdida seja estoque\Console\Kernel.php. Verifique a estrutura de pastas e as classes dentro. Por usar o Composer, o nome da classe e a estrutura de pastas devem ser exatamente o Namespace no topo do arquivo.


Se nada der certo parece que você esqueceu alguém no meio do caminho. Refaça as etapas do lifecycle do Laravel:

1. Middleware registrados no app/Http/kernel.php 2. ServiceProviders registrados no config/app.php (os que você adicionou) 3. Controller que está sendo chamado nessa Route 4. Demais classes chamadas pelo Controller (falta de namespace, falta de use nome/da/class no topo, falta de __construct caso esteja fazendo DependencyInjection, etc)

https://laravel.com/docs/5.4/lifecycle

Flavio, tente recomeçar o projeto com a versão do curso.

Assim como nosso amigo Ricardo mencionou, quando fui utilizar o Laravel mais atual, tive problemas com namespaces, por isso é recomendável que você utilize a mesma versão do curso.

Minha resposta te ajudou? Dá um retorno ou marca como solução? Obrigado!