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
- Upgrade von Laravel 4 auf Laravel 5 enth?lt mehrere Schritte, einschlie?lich Aktualisierung der Datei
composer.json
, Aktualisierung der Route, Controller und Ansichten und ?nderungen des benutzerdefinierten Codes, um neue Funktionen und ?nderungen in Laravel 5 zu verwenden. - Laravel 5 führt viele neue Funktionen und Verbesserungen vor, wie z. B. neue Verzeichnisstruktur, verbesserte Routing, bessere Umgebungskonfigurationsverarbeitung und neue Komponenten wie Socialite, Elixir und Scheduler.
- Der Upgrade auf Laravel 5 kann je nach Gr??e der Anwendung kompliziert und zeitaufw?ndig sein. Es ist jedoch nicht erforderlich, die neue Ordnerstruktur zu verbessern.
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
Laravel 5 wurde von Filtern zu Middleware migriert. Wenn Ihre Route also Filter enth?lt, ?ndern Sie sie in Middleware.
Route::get('/report', ['middleware' => 'auth', function() { // }]);Wenn Sie einen benutzerdefinierten Filter haben, k?nnen Sie ihn in Middleware migrieren. Ich benutze eine Googlelogin -Middleware auf meiner Route, die Implementierung ist wie folgt.
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?
Laravel 5 führt eine neue Art der Konfiguration der Umgebung ein. Laravel 5 verwendet keine einzelne
Datei mehr, sondern für jede Umgebung eine-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.Was ist die neue Verzeichnisstruktur in Laravel 5?
.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?
Das Upgrade von Laravel 4 auf Laravel 5 enth?lt mehrere Schritte. Zun?chst müssen Sie Ihre
Datei aktualisieren, um die neueste Version von Laravel zu ben?tigen. Sie müssen dann den Code der Anwendung aktualisieren, um die neuen Funktionen und ?nderungen in Laravel 5 zu verwenden. Dies kann die Aktualisierung Ihrer Routen, Controller und Ansichten sowie jeden benutzerdefinierten Code beinhalten.Was ist Laravel -Elixier und wie kann man es benutzen?
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.
Wie kann man das neue Routing -System in Laravel 5 verwenden?
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.
Was ist Laravel Socialite und wie kann man sie benutzen?
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.
Wie kann man den neuen Handwerksbefehl in Laravel 5 verwenden?
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.
Was sind die neuen Funktionen in Laravel 5.0?
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.
Wie kann ich die Datenbankmigration in Laravel 5 umgehen?
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Um zwei PHP -Arrays zusammenzuführen und eindeutige Werte zu behalten, gibt es zwei Hauptmethoden. 1. Verwenden Sie für Index -Arrays oder nur Deduplizierung Array_merge und Array_unique -Kombinationen: Zuerst merge array_merge ($ array1, $ array2) und verwenden Sie dann Array_unique (), um sie endgültig zu erhalten, um ein neues Array zu erhalten, das alle eindeutigen Werte enth?lt. 2. Verwenden Sie für assoziative Arrays und m?chten im ersten Array Schlüsselwertepaare beibehalten: $ result = $ array1 $ array2, was sicherstellt, dass die Schlüssel im ersten Array vom zweiten Array nicht überschrieben werden. Diese beiden Methoden gelten für verschiedene Szenarien, je nachdem, ob der Schlüsselname beibehalten wird oder nur der Fokus liegt

Um die St?rke des Kennworts zu bestimmen, muss die regelm??ige und logische Verarbeitung kombiniert werden. Die grundlegenden Anforderungen umfassen: 1. Die L?nge betr?gt mindestens 8 Ziffern; 2. Enthaltende Kleinbuchstaben, Gro?buchstaben und Zahlen; 3.. Spezielle Charakterbeschr?nkungen k?nnen hinzugefügt werden; In Bezug auf fortgeschrittene Aspekte müssen eine kontinuierliche Vervielf?ltigung von Zeichen und inkrementelle/abnehmende Sequenzen vermieden werden, was eine PHP -Funktionserkennung erfordert. Gleichzeitig sollten Blacklists vorgestellt werden, um gemeinsame schwache Passw?rter wie Passwort und 123456 zu filtern. Schlie?lich wird empfohlen, die ZXCVBN -Bibliothek zu kombinieren, um die Bewertungsgenauigkeit zu verbessern.

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Es gibt zwei M?glichkeiten, ein Array in PHP zu erstellen: Verwenden Sie die Funktion array () oder verwenden Sie Klammern []. 1. Die Verwendung der Funktion array () ist eine traditionelle Art und Weise mit guter Kompatibilit?t. Definieren Sie Indexarrays wie $ fruits = Array ("Apple", "Banana", "Orange") und assoziative Arrays wie $ user = array ("name" => "John", "Age" => 25); 2. Die Verwendung [] ist eine einfachere M?glichkeit, seit Php5.4 wie $ Color zu unterstützen
