suchen
HeimBackend-EntwicklungPHP-TutorialLaravel 4 bis Laravel 5 - Der einfache Upgrade -Handbuch

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.

Laravel 4 to Laravel 5 - The Simple Upgrade Guide

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

filter

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

forms und html

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

Die Komplexität und Dauer des Upgrade auf Laravel 5 hängt immer von der Größe Ihrer Anwendung ab, und für Ihren spezifischen Fall kann der Prozess viel länger sein als dieses Beispiel. In diesem Artikel versuchen wir, gemeinsame Prozesse zu erklären, die die meisten, wenn nicht alle, von dem verändert werden sollten, was geändert werden muss.
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!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie identifiziert PHP die Sitzung eines Benutzers?Wie identifiziert PHP die Sitzung eines Benutzers?May 01, 2025 am 12:23 AM

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Was sind einige Best Practices für die Sicherung von PHP -Sitzungen?Was sind einige Best Practices für die Sicherung von PHP -Sitzungen?May 01, 2025 am 12:22 AM

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

Wo werden standardmäßig PHP -Sitzungsdateien gespeichert?Wo werden standardmäßig PHP -Sitzungsdateien gespeichert?May 01, 2025 am 12:15 AM

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows

Wie rufen Sie Daten aus einer PHP -Sitzung ab?Wie rufen Sie Daten aus einer PHP -Sitzung ab?May 01, 2025 am 12:11 AM

ToretriedatafromaphpSession, startThesessionwithSession_start () und AccessvariableSthe $ _SessionArray.Fexample: 1) StartTheSession: session_start (). 2) Abgerufen: $ username = $ _ Session ['username'];

Wie können Sie Sitzungen verwenden, um einen Einkaufswagen zu implementieren?Wie können Sie Sitzungen verwenden, um einen Einkaufswagen zu implementieren?May 01, 2025 am 12:10 AM

Zu den Schritten zum Erstellen eines effizienten Einkaufswagensystems mithilfe von Sitzungen gehören: 1) Verstehen Sie die Definition und Funktion der Sitzung. Die Sitzung ist ein serverseitiger Speichermechanismus, der verwendet wird, um den Benutzerstatus über Anforderungen hinweg aufrechtzuerhalten. 2) Implementieren Sie das grundlegende Sitzungsmanagement, z. B. das Hinzufügen von Produkten in den Einkaufswagen; 3) auf die fortschrittliche Nutzung ausdehnen und das Produktmengenmanagement und die Löschung der Produktmenge unterstützen; 4) Optimieren Sie Leistung und Sicherheit, indem Sie Sitzungsdaten fortsetzen und sichere Sitzungskennungen verwenden.

Wie erstellen und verwenden Sie eine Schnittstelle in PHP?Wie erstellen und verwenden Sie eine Schnittstelle in PHP?Apr 30, 2025 pm 03:40 PM

Der Artikel erläutert, wie Schnittstellen in PHP erstellt, implementiert und verwendet werden und sich auf ihre Vorteile für die Organisation von Code und die Wartbarkeit konzentriert.

Was ist der Unterschied zwischen Crypt () und Passage_hash ()?Was ist der Unterschied zwischen Crypt () und Passage_hash ()?Apr 30, 2025 pm 03:39 PM

In dem Artikel werden die Unterschiede zwischen CryPT () und Passage_hash () in PHP für Passwort -Hashing erörtert und sich auf ihre Implementierung, Sicherheit und Eignung für moderne Webanwendungen konzentriert.

Wie können Sie Cross-Site Scripting (XSS) in PHP verhindern?Wie können Sie Cross-Site Scripting (XSS) in PHP verhindern?Apr 30, 2025 pm 03:38 PM

In Artikel werden in PHP durch Eingabevalidierung, Ausgabecodierung und Verwendung von Tools wie OWASP ESAPI und HTML-Reinigungsmittel die Verhinderung des Cross-Site-Skripts (XSS) erläutert.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft