Maison >développement back-end >tutoriel php >Laravel 4 à Laravel 5 - Le guide de mise à niveau simple
Migration de Laravel 4 à Laravel 5: Guide étape par étape
Laravel 5 a été libéré, mais la peur du changement des gens demeure. Nous continuons à entendre les gens se plaindre de grands changements, tels que de nouvelles structures de dossiers. Mon application va-t-elle planter s'il exécute composer update
?
Cet article vous guidera sur la façon de migrer votre application Laravel 4 existante vers Laravel 5 et de découvrir la nouvelle structure de dossier.
Points clés
composer.json
, la mise à jour de l'itinéraire, le contrôleur et les vues, et la modification de tout code personnalisé pour utiliser de nouvelles fonctionnalités et modifications dans Laravel 5. Installation
Mon application Laravel 4 existante est un programme de démonstration dans les articles précédents sur l'utilisation de l'API Google Analytics. L'application n'a pas beaucoup de code, mais elle suffit pour notre tutoriel.
Installons d'abord Laravel 5 sur votre ordinateur et créons un dossier temporaire pour enregistrer notre version Laravel 4 de l'application.
<code class="language-bash">composer create-project laravel/laravel --prefer-dist</code>
Je préfère installer Laravel via Composer, mais vous pouvez accéder à la documentation pour en savoir plus sur le programme d'installation de Laravel.
Vous pouvez utiliser la machine virtuelle Vagrant dans le référentiel ou utiliser Homestead améliorée. Si tout se passe bien, vous devriez voir la page de bienvenue pour Laravel 5.
Fichier de configuration
L'ancien dossier est maintenant situé à la racine de l'application, nous devons donc déplacer app/config
vers app/config/analytics.php
. Les informations d'identification sont collées directement dans le fichier, alors pourquoi ne pas utiliser les variables d'environnement? config/analytics.php
<code class="language-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>
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
Le fichier sera chargé automatiquement et peut être utilisé pour séparer la configuration de l'environnement local de l'environnement de production, de l'environnement de test, etc. .env
Route
Laravel 4 La route est enregistrée dans. Dans Laravel 5, toutes les pièces liées à HTTP sont regroupées dans le dossier app/routes.php
, y compris l'itinéraire, donc déplacez app/Http
vers app/routes.php
. app/Http/routes.php
<code class="language-php">Route::get('/report', ['middleware' => 'auth', function() { // }]);</code>Si vous avez un filtre personnalisé, vous pouvez le migrer vers le middleware. J'utilise un middleware Googlelogin dans mon itinéraire, l'implémentation est la suivante.
<code class="language-bash">composer create-project laravel/laravel --prefer-dist</code>
<code class="language-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>
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
CRSF Protection Middleware est ajouté par défaut. Si vous souhaitez le supprimer, vous pouvez accéder au fichier app/Http/Kernel.php
et commenter la ligne correspondante.
Contrôleur
Parce que notre contrôleur est considéré comme une partie de la logique HTTP, nous devons déplacer app/controllers/*
vers app/Http/Controllers
et utiliser l'espace de noms App\Http\Controllers
. Le dernier problème que vous devez résoudre est de modifier BaseController en classe de contrôleur.
Si vous n'aimez pas l'espace de noms racine de l'application, vous pouvez le modifier à l'échelle mondiale à l'aide de la commande Artisan ci-dessous.
<code class="language-php">Route::get('/report', ['middleware' => 'auth', function() { // }]);</code>
migration
Notre application Google Analytics n'a pas d'interactions de base de données locales, mais le processus de mise à niveau mérite d'être mentionné.
Le répertoire app/database
est maintenant dans le dossier /database
, il vous suffit de déplacer les fichiers là-bas. Le répertoire contient déjà une table utilisateur et une table Password_Resets que vous pouvez supprimer ou mettre à jour au besoin.
Modèle
Le dossier des modèles dans Laravel 4 disparaît, et Laravel 5 place le modèle utilisateur directement dans le dossier de l'application comme exemple. Vous pouvez également y copier votre modèle et utiliser l'espace de noms de l'application.
Cependant, si vous n'aimez pas l'idée de y mettre votre modèle, vous pouvez créer un nouveau dossier appelé Modèles sous le répertoire de l'application, mais n'oubliez pas d'utiliser l'espace de noms App\Models
pour votre espace de noms de classe .
<code class="language-php">// 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); } }</code>
Service d'application
Notre dossier SRC contient un GA_SERVICE et une classe GA_UTILS. Si nous pensons que ce sont des services, nous pouvons les mettre en app/Services
. Sinon, nous pouvons créer un nouveau dossier appelé app/GA
où nous stockons notre classe de service. Cela causera des problèmes car nous n'avons pas chargé automatiquement avec PSR-4 au début, nous devons donc mettre à jour les références de classe dans le contrôleur avec le nouvel espace de noms correct.
Voir
La vue d'application se déplace du dossier app/views
au dossier resources/views
.
Composer
Assurez-vous de copier les dépendances des compositeurs de l'application et d'effectuer les mises à niveau nécessaires. Pour notre démo, je déplacerai vers un nouveau "google/apiclient": "1.1.*"
et exécuterai composer.json
pour refléter ces changements. composer update
Formes et HTML Le package
a été supprimé de l'installation par défaut de Laravel 5 et vous devez l'installer séparément. illuminate/html
Pour ramener les fonctions HTML auxiliaires à votre projet, vous devez ajouter le package "illuminate/html": "5.0.*"
à votre composer.json
et exécuter composer update
, puis vous devez ajouter 'Illuminate\Html\HtmlServiceProvider'
à votre tableau de fournisseur config/app.php
> . Si vous souhaitez utiliser HTML et former des apparences dans des modèles de lame, vous pouvez ajouter les apparences suivantes à votre tableau d'apparence config/app.php
.
<code class="language-bash">composer create-project laravel/laravel --prefer-dist</code>
Conclusion
La complexité et la durée du processus de mise à niveau vers Laravel 5 dépend toujours de la taille de votre application, et pour votre cas spécifique, le processus peut être beaucoup plus long que cet exemple. Dans cet article, nous essayons d'expliquer les processus courants qui devraient gérer la plupart, sinon la totalité, de ce qui doit être modifié.
Vous n'avez pas à passer à la nouvelle structure de dossier, vous pouvez garder l'ancienne structure et simplement mettre à jour vos dépendances de compositeur, mais ce n'est pas la pratique recommandée. Si vous avez des questions ou des commentaires, assurez-vous de les publier ci-dessous. Pour plus d'informations, consultez le guide de mise à niveau complet de la version.
Laravel 4 à Laravel 5 Guide de mise à niveau FAQ (FAQ)
Laravel 5 présente de nombreuses fonctionnalités et améliorations de nouvelles fonctionnalités basées sur Laravel 4. Il s'agit notamment de nouvelles structures de répertoires, d'un routage amélioré, d'un meilleur traitement de configuration environnementale et de nouveaux composants tels que Socialite, Elixir et Scheduler. Laravel 5 présente également une nouvelle interface de ligne de commande appelée Artisan, qui fournit de nombreuses commandes utiles pour les tâches courantes.
Laravel 5 introduit une nouvelle façon de gérer la configuration de l'environnement. Laravel 5 n'utilise plus un seul fichier .env.php
, mais utilise plutôt un fichier .env
pour chaque environnement. Cela facilite la gestion de différentes configurations pour différents environnements. Vous pouvez définir des variables d'environnement dans le fichier .env
et Laravel les chargera automatiquement.
Laravel 5 présente une nouvelle structure de répertoire conçue pour être plus intuitive et flexible. Le répertoire de l'APP est désormais le répertoire racine de l'application, qui contient plusieurs sous-répertoires de différentes parties de l'application, telles que HTTP, les fournisseurs et la console. Le répertoire public est désormais le répertoire racine du serveur Web, qui contient vos ressources telles que les images, JavaScript et les fichiers CSS.
La mise à niveau de Laravel 4 à Laravel 5 comprend plusieurs étapes. Tout d'abord, vous devez mettre à jour votre fichier composer.json
pour nécessiter la dernière version de Laravel. Vous devez ensuite mettre à jour le code de l'application pour utiliser les nouvelles fonctionnalités et les modifications de Laravel 5. Cela peut impliquer la mise à jour de vos itinéraires, contrôleurs et vues, ainsi que tout code personnalisé que vous écrivez.
Laravel Elixir est un nouveau composant de Laravel 5 qui fournit une API propre et lisse pour définir les tâches de base de la gulp. Il prend en charge CSS et les préprocesseurs JavaScript communs tels que SASS et CoffeeScript, et il fournit également un moyen pratique de la version et de connecter vos ressources.
Laravel 5 introduit un nouveau système de routage plus flexible et puissant que le système de routage de Laravel 4. Les routeurs sont désormais définis dans le fichier app/Http/routes.php
, et vous pouvez regrouper les itinéraires, leur appliquer du middleware et même les espacer des noms.
Laravel Socialite est un nouveau composant de Laravel 5 qui fournit un moyen facile et pratique d'authentifier en utilisant le fournisseur OAuth. Il prend en charge plusieurs fournisseurs populaires hors de la boîte et vous pouvez également ajouter vos propres fournisseurs personnalisés.
Laravel 5 présente une nouvelle interface de ligne de commande appelée Artisan, qui fournit de nombreuses commandes utiles pour les tâches communes. Vous pouvez utiliser Artisan pour générer du code de chauffeur, exécuter des migrations de base de données et même démarrer un serveur de développement local.
Laravel 5.0 introduit de nouvelles fonctionnalités, notamment une nouvelle structure de répertoire, un routage amélioré, un meilleur traitement de configuration environnementale et de nouveaux composants tels que Socialite, Elixir et Scheduler. Il présente également une nouvelle interface de ligne de commande appelée Artisan.
Laravel 5 fournit un puissant système de migration de la base de données qui vous permet de verser le schéma de base de données. Vous pouvez créer des migrations à l'aide de l'outil de ligne de commande Artisan, puis les exécuter à l'aide de la commande migrate. Cela facilite l'application des changements de schéma de base de données dans différents environnements.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!