2015-04-12 19 views
7

Sto seguendo il materiale indicato nel libro Easy Laravel 5 per imparare Laravel. Così ho creato l'app come indicato, e quando ho visitato localhost:8000, ho visto la pagina di benvenuto.Perché la mia app si arresta in modo anomalo quando cambio il mio spazio dei nomi?

Poi ho dato il comando di modifica del nome:

php artisan app:name todoparrot 

a cui il sistema risposto con Application namespace set!. Ma ora, quando ricarico localhost:8000, non vedo nulla, e il terminale di servire l'applicazione mi dà una lunga lista di errori:

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 

Ora io non sono in grado di eseguire anche artisan, come io continuo a ricevere lo stesso errore . Qualche idea su cosa potrebbe essere rotto a causa di questo cambiamento estremamente semplice?

risposta

13

Provate questo comando dopo la ridenominazione:

composer dump-autoload 
+1

Questo ha funzionato! Ora, per favore, dimmi perché :-) – dotslash

+1

@dotslash compositore ha i file di caricamento automatico presso 'vendor/compositore/'directory con i tuoi spazi dei nomi. quando cambi ne hai bisogno di cancellarlo e generarlo di nuovo, e quel comando lo fa. – ryanwinchester

+0

Grazie e buona giornata! – dotslash

1

Se si esegue il comando di seguito, cambierà tutto lo spazio dei nomi e il percorso di todoparrot. Nel tuo caso Laravel non è stato trovato "Classe todoparrot \ Console \ Kernel non esiste". Assicurarsi che lo spazio dei nomi è stato cambiato in todoparrot

php artisan app:name todoparrot 

Il comando modificherà tutti i file sotto

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 

esempio in app/Console/Kernel.php il comando cambierà questo

namespace App\Console; 

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

a

namespace todoparrot\Console; 

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

Controllare l'app file/Console/Kernel.php se il percorso "App" è ancora disponibile. Se disponibile, passare a "todoparrot \".

Ho già provato a eseguire il comando "php artisan app: name todoparrot". Non ha alcun problema. Non so perché causerà un errore al tuo.

+0

ho fatto una nuova installazione di app, ha cambiato il nome in 'pappagallo 'e il problema persiste ancora per me. :(La più grande sorpresa è che il mio Kernel.php mostra tutto per essere configurato correttamente: http://pastebin.com/CW5wqLr0 – dotslash

-1

GGO a C: \ wamp \ www \ laravel \ nel comando pronto uso

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

invece di

composer dump-autoload 
Problemi correlati