2016-04-11 2 views
1

Es ist 3 Tage her, dass ich an der Übersetzung meiner Seite bin arbeiten, so dass ich installierte LaravelLocalization:Fatal error: Class ‚LaravelLocalization‘ nicht nach dem Komponisten gefunden in der Produktion installiert

Ich tat alles, was in lokalen arbeitet, dann schob ich es in der Produktion und ausgeführt:

composer install --no-interaction --no-dev 
php artisan clear-compiled 
php artisan optimize 
composer dump-autoload -o 
php artisan route:cache 
php artisan config:cache 

nun alle "php Handwerker Befehle nicht mit:"

[Symfony\Component\Debug\Exception\FatalThrowableError] 
Fatal error: Class 'LaravelLocalization' not found  

in diesem Fall in dem Komponisten installieren Skript, versagt es in:

php artisan clear-compiled 

ich versuchte zu laufen:

php artisan cache:clear 
php artisan route:clear 

Aber ohne Erfolg ...

Irgendwelche Ideen ??? Dies ist nicht das erste Mal, dass ich diese Art von Sachen, aber ich kann sagen, dass dies es ist ein Schmerz im Arsch ist :(

EDIT:

In meinem routes.php,

ich diese gelöscht Leitung:

Strecke :: Gruppe ([ 'Präfix' => LaravelLocalization :: setLocale(), 'Middleware' => [ 'localeSessionRedirect', 'localizationRedirect']],

um alle meine Routen und Jetzt funktioniert die Installation von Composer

Aber es löst nicht mein Problem, denn sobald ich es zurück gebe, bekomme ich immer noch den gleichen Fehler :(

+0

Haben Sie Ihre 'compose.json' Datei in prod aktualisiert? – Phil

+0

yep, composer.json ist Teil meiner Git rep –

+1

Können Sie bestätigen, dass "mcamara/laravel-localisation" 'in der Produktion' composer.json' ist – Phil

Antwort

3

ich beschlossen es die Zeile entfernen:

Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => ['localeSessionRedirect', 'localizationRedirect']], 

in meiner Datei routes.php

Lauf wieder

composer install 

und schließlich

php artisan config:clear 
php artisan route:clear 

Was ich don‘ Ich weiß, warum es passiert ist, und wenn th Es ist ein Weg, um es zu verhindern ...

1

als was der Fehler sagt, es bedeutet, dass der Komponist Ihr Paket nicht finden kann . so sicher sein, überprüfen Sie Ihre config/app.php-Datei achten Sie darauf, das Paket in Provider bzw. Alias-Arrays zu setzen.

+0

I‘ Ich habe meine Frage bearbeitet, bitte überprüfen Sie es –

+0

versuchen, das Paket neu zu installieren. Löschen Sie zuerst alle Änderungen, die Sie in app.php vorgenommen haben, und lassen Sie Autoload und den Cache in Ihrem Composer löschen. Danach versuchen Sie das Paket zu installieren. – Rolandoz

+0

Ich habe es gelöst, TX für Ihre Hilfe! –

0

Dies ist seit einiger Zeit ein bekanntes Problem, aber in letzter Zeit wurde tatsächlich gelöst. Sie können über die issue here lesen.

Im Grunde geladen php artisan lädt das gesamte Framework, einschließlich der zwischengespeicherten Dateien. Da die zwischengespeicherten Dateien Ihren Dienstanbieter nicht enthalten, erhalten Sie den Fehler. Dies beinhaltet die Ausführung php artisan clear-compiled. Daher verwendet es die zwischengespeicherten Dateien in dem Befehl, der zum Löschen der zwischengespeicherten Dateien verwendet wird.

Dieses Problem wird als von laravel/framework:v5.2.25 und laravel/laravel:v5.2.27, aufgelöst und zurückportiert zu laravel/framework:v5.1.33 und laravel/laravel:v5.1.33 schließlich worden.

Dieser Fix enthält eine Änderung an der Laravel-Anwendung (laravel/laravel) zusätzlich zum Laravel-Framework (laravel/framework). Um dies zu implementieren, müssen Sie:

1) Aktualisieren Sie den scripts Abschnitt Ihrer composer.json Datei, um mit dem in der laravel/laravel package übereinstimmen. Im Einzelnen:

  • entfernen Sie den pre-update-cmd Abschnitt
  • im post-install-cmd Abschnitt ersetzen "php artisan clear-compiled" mit "Illuminate\\Foundation\\ComposerScripts::postInstall"
  • im post-update-cmd Abschnitt ersetzen "php artisan clear-compiled" mit "Illuminate\\Foundation\\ComposerScripts::postUpdate"

2) Sobald Sie Ihre composer.json aktualisiert Führen Sie eine composer update. Wenn Sie das Framework nur aktualisieren möchten, können Sie composer update laravel/framework ausführen.