2015-04-12 27 views
7

Ich folge dem Material in dem Buch gegeben Easy Laravel 5 Laravel zu lernen. Also habe ich die App wie beschrieben erstellt, und als ich localhost:8000 besuchte, sah ich die Willkommensseite.Warum stürzt meine App ab, wenn ich meinen Namespace ändere?

Dann gab ich den Namen ändern Befehl:

php artisan app:name todoparrot 

auf die das System mit Application namespace set! reagiert. Aber jetzt, wenn ich localhost:8000 nachladen, ich sehe nichts, und das Terminal dient die App gibt mir eine lange Liste von Fehlern:

PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class todoparrot\Console\Kernel does not exist' in /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php:776 
Stack trace: 
#0 /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php(776): ReflectionClass->__construct('todoparrot\Cons...') 
#1 /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php(656): Illuminate\Container\Container->build('todoparrot\Cons...', Array) 
#2 /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(613): Illuminate\Container\Container->make('todoparrot\Cons...', Array) 
#3 /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php(229): Illuminate\Foundation\Application->make('todoparrot\Cons...', Array) 
#4 /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php(773): Illuminate\Container\Con in /media/common/htdocs/todoparrot/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 776 

Jetzt bin ich nicht in der Lage, auch artisan laufen, wie ich halte die gleichen Fehler . Irgendeine Idee, was könnte wegen dieser extrem einfachen Änderung gebrochen werden?

Antwort

13

Versuchen Sie diesen Befehl nach Umbenennung:

composer dump-autoload 
+1

Das hat funktioniert! Jetzt sag bitte warum. :-) – dotslash

+1

@dotslash Composer hat Dateien bei 'vendor/Composer/'Verzeichnis mit Ihren Namespaces. Wenn Sie etwas ändern, müssen Sie es löschen und erneut generieren, und dieser Befehl tut es. – ryanwinchester

+0

Vielen Dank und einen schönen Tag! – dotslash

1

Wenn Sie den Befehl unten ausführen, wird der gesamte Namespace und der Pfad zu todoparrot geändert. In Ihrem Fall wurde Laravel nicht gefunden "Class todoparrot \ Console \ Kernel existiert nicht". Stellen Sie sicher, wurde der Namensraum geändert

php artisan app:name todoparrot 

Der Befehl zum todoparrot wird unter

modified: app/Commands/Command.php 
modified: app/Console/Commands/Inspire.php 
modified: app/Console/Kernel.php 
modified: app/Events/Event.php 
modified: app/Exceptions/Handler.php 
modified: app/Http/Controllers/Auth/AuthController.php 
modified: app/Http/Controllers/Auth/PasswordController.php 
modified: app/Http/Controllers/Controller.php 
modified: app/Http/Controllers/HomeController.php 
modified: app/Http/Controllers/WelcomeController.php 
modified: app/Http/Kernel.php 
modified: app/Http/Middleware/Authenticate.php 
modified: app/Http/Middleware/RedirectIfAuthenticated.php 
modified: app/Http/Middleware/VerifyCsrfToken.php 
modified: app/Http/Requests/Request.php 
modified: app/Http/routes.php 
modified: app/Providers/AppServiceProvider.php 
modified: app/Providers/BusServiceProvider.php 
modified: app/Providers/ConfigServiceProvider.php 
modified: app/Providers/EventServiceProvider.php 
modified: app/Providers/RouteServiceProvider.php 
modified: app/Services/Registrar.php 
modified: bootstrap/app.php 
modified: composer.json 
modified: config/app.php 
modified: config/auth.php 

Beispiel in app/Console/Kernel.php alle Dateien ändern den Befehl wird diese Änderung

namespace App\Console; 

protected $commands = [ 
    'App\Console\Commands\Inspire', 
]; 

zu

namespace todoparrot\Console; 

protected $commands = [ 
    'todoparrot\Console\Commands\Inspire', 
]; 

Bitte überprüfen Sie die Datei app/Console/Kernel.php, wenn "App" noch verfügbar ist. Wenn verfügbar, wechseln Sie bitte zu "Todoparrot".

Ich bereits versuchen, Befehl "php Handwerker App: Name todoparrot" ausführen. Es hat kein Problem. Ich weiß nicht, warum es bei dir einen Fehler gibt.

+0

Ich habe eine neue App installieren, änderte den Namen in "Papagei" und immer noch besteht das Problem für mich. :(Die größte Überraschung ist, dass meine Kernel.php alles zeigt, um richtig eingerichtet zu werden: http://pastebin.com/CW5wqLr0 – dotslash

-1

GGO in C: \ wamp \ www \ Laravel \ in der Eingabeaufforderung Verwendung

C:\ProgramData\ComposerSetup\bin\composer dump-autoload 

statt

composer dump-autoload 
Verwandte Themen