Migration von Laravel 4 nach Laravel 5: Schritt-für-Schritt-Handbuch
Laravel 5 wurde veröffentlicht, aber die Angst vor Veränderungen bleibt bestehen. Wir hören immer wieder, dass sich Leute über einige große Veränderungen beschweren, wie z. B. neue Ordnerstrukturen. Wird meine Anwendung abstürzen, wenn sie composer update
ausgeführt wird?
In diesem Artikel wird Sie über die Migration Ihrer vorhandenen Laravel 4 -App in Laravel 5 und erfahren Sie mehr über die neue Ordnerstruktur.
Schlüsselpunkte
composer.json
, Aktualisierung der Route, Controller und Ansichten und Änderungen des benutzerdefinierten Codes, um neue Funktionen und Änderungen in Laravel 5 zu verwenden. Installation
Meine vorhandene Laravel 4 -Anwendung ist ein Demo -Programm in früheren Artikeln zur Verwendung der Google Analytics -API. Die Anwendung hat nicht viel Code, aber es reicht für unser Tutorial aus.
Lassen Sie uns zuerst Laravel 5 auf Ihrem Computer installieren und einen temporären Ordner erstellen, um unsere Laravel 4 -Version der Anwendung zu speichern.
composer create-project laravel/laravel --prefer-dist
Ich ziehe es vor, Laravel über den Komponisten zu installieren, aber Sie können auf die Dokumentation zugreifen, um mehr über den Laravel -Installateur zu erfahren.
Sie können die Vagabrant Virtual Machine im Repository oder die Verbesserung des Gehöfts verwenden. Wenn alles gut geht, sollten Sie die Begrüßungsseite für Laravel 5 sehen.
Konfigurationsdatei
Der alte -Fordner befindet sich jetzt in der Wurzel der Anwendung, sodass wir app/config
nach app/config/analytics.php
verschieben müssen. Die Anmeldeinformationen werden direkt in die Datei eingefügt. Warum also nicht Umgebungsvariablen verwenden? config/analytics.php
// config/analytics.php return [ 'app_name' => env('app_name'), 'client_id' => env('client_id'), 'client_secret' => env('client_secret'), 'api_key' => env('api_key') ];
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
Die Datei wird automatisch geladen und kann verwendet werden, um die lokale Umgebungskonfiguration von der Produktionsumgebung, der Testumgebung usw. zu trennen. .env
Route
Laravel 4 Route ist in registriert. In Laravel 5 werden alle HTTP-bezogenen Teile unter dem Ordner app/routes.php
einschließlich der Route gruppiert. Lassen Sie uns also app/Http
nach app/routes.php
verschieben. app/Http/routes.php
Route::get('/report', ['middleware' => 'auth', function() { // }]);
composer create-project laravel/laravel --prefer-dist
// config/analytics.php return [ 'app_name' => env('app_name'), 'client_id' => env('client_id'), 'client_secret' => env('client_secret'), 'api_key' => env('api_key') ];
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
CRSF Protection Middleware wird standardmäßig hinzugefügt. Wenn Sie es löschen möchten, können Sie in die Datei app/Http/Kernel.php
gehen und die entsprechende Zeile kommentieren.
Controller
Da unser Controller als Teil der HTTP -Logik angesehen wird, müssen wir app/controllers/*
in app/Http/Controllers
verschieben und den Namespace App\Http\Controllers
verwenden. Das letzte Problem, das Sie beheben müssen, ist die Änderung von Basecontroller in die Controller -Klasse.
Wenn Sie den App -Root -Namespace nicht mögen, können Sie sie mit dem folgenden Handwerksbefehl global ändern.
Route::get('/report', ['middleware' => 'auth', function() { // }]);
Migration
Unsere Google Analytics -Anwendung hat keine lokalen Datenbankinteraktionen, aber der Upgrade -Prozess ist erwähnenswert.
Das Verzeichnis app/database
befindet sich jetzt im Ordner /database
, Sie müssen nur die Dateien dort verschieben. Das Verzeichnis enthält bereits eine Benutzertabelle und eine Tabelle für Password_Resets, die Sie bei Bedarf löschen oder aktualisieren können.
Modell
Der Modelsordner in Laravel 4 verschwindet, und Laravel 5 platziert das Benutzermodell als Beispiel direkt in den App -Ordner. Sie können Ihr Modell dort auch kopieren und den App -Namespace verwenden.
Wenn Sie jedoch die Idee, Ihr Modell dort zu platzieren, nicht gefallen . App\Models
// app/Http/Middleware/GoogleLogin.php class GoogleLogin { public function handle($request, Closure $next) { $ga = \App::make('\App\Services\GoogleLogin'); if (!$ga->isLoggedIn()) { return redirect('login'); } return $next($request); } }
Anwendungsdienst
Unser SRC -Ordner enthält einen GA_Service und eine GA_UTILS -Klasse. Wenn wir denken, dass sie Dienstleistungen sind, können wir sie in einsetzen. Andernfalls können wir einen neuen Ordner namens app/Services
erstellen, in dem wir unsere Serviceklasse speichern. Dies führt zu Problemen, da wir am Anfang nicht automatisch mit PSR-4 geladen haben. Daher müssen wir die Klassenreferenzen im Controller mit dem richtigen neuen Namespace aktualisieren. app/GA
Ansicht
Die Anwendungsansicht bewegt sich vom Ordner zum app/views
Ordner. resources/views
Der Ressourcenordner enthält auch den Lang-Ordner für die Anwendungslokalisierung und den Ordner Assets für Front-End-Ressourcen. Laravel 5 führt Elixir vor, das den Gulp -Task -Läufer an die Laravel -Entwicklungsumgebung anpasst.
Komponist
Stellen Sie sicher, dass Sie die Komponistenabhängigkeiten der Anwendung kopieren und die erforderlichen Upgrades vornehmen. Für unsere Demo werde ich
zu einem neuen umstellen und "google/apiclient": "1.1.*"
ausführen, um diese Änderungen widerzuspiegeln. composer.json
composer update
Das
-Paket wurde aus der Standardinstallation von Laravel 5 entfernt und Sie müssen es separat installieren. Um HTML -Helferfunktionen in Ihr Projekt zurückzubringen . Wenn Sie HTML -Auftritte in Blade -Vorlagen verwenden möchten, können Sie Ihrem Aussehensarray die folgenden Erscheinungen hinzufügen. "illuminate/html": "5.0.*"
composer.json
composer update
'Illuminate\Html\HtmlServiceProvider'
Schlussfolgerung config/app.php
config/app.php
composer create-project laravel/laravel --prefer-dist
Sie müssen nicht auf die neue Ordnerstruktur aufrüsten, Sie können die alte Struktur behalten und einfach Ihre Komponistenabhängigkeiten aktualisieren. Dies ist jedoch nicht die empfohlene Praxis. Wenn Sie Fragen oder Kommentare haben, veröffentlichen Sie sie unten. Weitere Informationen finden Sie in der Vollversion -Upgrade -Handbuch.
Laravel 4 bis Laravel 5 Upgrade Guide FAQs (FAQs)
Was ist der Hauptunterschied zwischen Laravel 4 und Laravel 5?
Laravel 5 führt viele neue Funktionen und Verbesserungen auf der Grundlage von Laravel 4 ein. Dazu gehören neue Verzeichnisstrukturen, verbesserte Routing, bessere Umgebungskonfigurationsverarbeitung und neue Komponenten wie Socialite, Elixir und Scheduler. Laravel 5 führt auch eine neue Befehlszeilenschnittstelle namens Artisan vor, die viele nützliche Befehle für gemeinsame Aufgaben liefert. Wie kann man die Umgebungskonfiguration in Laravel 5 umgehen?
-Datei. Dies erleichtert die Verwaltung verschiedener Konfigurationen für verschiedene Umgebungen. Sie können Umgebungsvariablen in der Datei
festlegen, und Laravel lädt sie automatisch.
.env.php
Laravel 5 führt eine neue Verzeichnisstruktur vor, die intuitiver und flexibler ist. Das App -Verzeichnis ist jetzt das Stammverzeichnis der Anwendung, das mehrere Unterverzeichnisse verschiedener Teile der Anwendung enthält, wie HTTP, Anbieter und Konsole. Das öffentliche Verzeichnis ist jetzt das Root -Verzeichnis des Webservers, das Ihre Ressourcen wie Bilder, JavaScript und CSS -Dateien enthält. .env
.env
Wie man von Laravel 4 auf Laravel 5 aufrüstet?
Laravel -Elixir ist eine neue Komponente in Laravel 5, die eine saubere und glatte API zur Definition grundlegender Schlupfaufgaben bietet. Es unterstützt gemeinsame CSS- und JavaScript -Präprozessoren wie Sass und Coffeescript und bietet auch eine bequeme Möglichkeit, Ihre Ressourcen zu verstellen und zu verbinden.
Laravel 5 führt ein neues Routing -System ein, das flexibler und leistungsfähiger ist als das Routing -System in Laravel 4. Router sind jetzt in der Datei app/Http/routes.php
definiert, und Sie können die Routen gruppieren, Middleware auf sie anwenden und sogar Namespace.
Laravel Socialite ist eine neue Komponente in Laravel 5, die eine einfache und bequeme Möglichkeit bietet, mit dem OAuth -Anbieter zu authentifizieren. Es unterstützt mehrere beliebte Anbieter aus der Box, und Sie können auch Ihre eigenen benutzerdefinierten Anbieter hinzufügen.
Laravel 5 führt eine neue Befehlszeilenschnittstelle namens Artisan vor, die viele nützliche Befehle für gemeinsame Aufgaben liefert. Sie können Artisan verwenden, um Boilerplate -Code zu generieren, Datenbankmigrationen auszuführen und sogar einen lokalen Entwicklungsserver zu starten.
Laravel 5.0 führt einige neue Funktionen ein, darunter neue Verzeichnisstruktur, verbesserte Routing, bessere Umgebungskonfigurationsverarbeitung und neue Komponenten wie Socialite, Elixir und Scheduler. Es wird auch eine neue Befehlszeilenschnittstelle namens Artisan vorgestellt.
Laravel 5 bietet ein leistungsstarkes Datenbank -Migrationssystem, mit dem Sie das Datenbankschema versionieren können. Sie können Migrationen über das Handwerkszeilen -Tool für Handwerker erstellen und diese dann mit dem Befehl migrieren ausführen. Dies erleichtert einfach, Datenbankschema -Änderungen in verschiedenen Umgebungen anzuwenden.
Das obige ist der detaillierte Inhalt vonLaravel 4 bis Laravel 5 - Der einfache Upgrade -Handbuch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!