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
- La mise à niveau de Laravel 4 à Laravel 5 comprend plusieurs étapes, notamment la mise à jour du fichier
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. - Laravel 5 introduit de nombreuses nouvelles fonctionnalités et améliorations, telles que la nouvelle structure de répertoire, un routage amélioré, un meilleur traitement de configuration de l'environnement et de nouveaux composants tels que Socialite, Elixir et Scheduler.
- Le processus de mise à niveau vers Laravel 5 peut être compliqué et long, selon la taille de l'application. Cependant, il n'est pas nécessaire de passer à la nouvelle structure de dossier; vous pouvez conserver l'ancienne structure et mettre à jour les dépendances du compositeur, mais ce n'est pas la pratique recommandée.
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.
composer create-project laravel/laravel --prefer-dist
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
// 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>
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
Laravel 5 a été migré des filtres vers le middleware, donc si votre itinéraire contient des filtres, assurez-vous de le changer en middleware.
Route::get('/report', ['middleware' => 'auth', function() { // }]);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.
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 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.
Route::get('/report', ['middleware' => 'auth', function() { // }]);
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 .
// 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); } }
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
.
composer create-project laravel/laravel --prefer-dist
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)
Quelle est la principale différence entre Laravel 4 et Laravel 5?
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 taches courantes.
Comment gérer la configuration de l'environnement dans Laravel 5?
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.
Quelle est la nouvelle structure de répertoire dans Laravel 5?
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.
Comment passer de Laravel 4 à Laravel 5?
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.
Qu'est-ce que Laravel Elixir et comment l'utiliser?
Laravel Elixir est un nouveau composant de Laravel 5 qui fournit une API propre et lisse pour définir les taches 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.
Comment utiliser le nouveau système de routage dans Laravel 5?
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.
Qu'est-ce que Laravel Socialite et comment l'utiliser?
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.
Comment utiliser le nouveau commandement artisan dans Laravel 5?
Laravel 5 présente une nouvelle interface de ligne de commande appelée Artisan, qui fournit de nombreuses commandes utiles pour les taches 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.
Quelles sont les nouvelles fonctionnalités de Laravel 5.0?
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.
Comment gérer la migration de la base de données dans Laravel 5?
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Toversionaphp basé sur la performance, utilisation de la Version basée sur la croissance et la SEAFROURSE, Séparable CodééToAvoid Conclict, dépréciant les versions avec la Communication et la vision de la ConsiderCustomEnlywhencesseary.

ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

ProcéduralandObject-OriendEdProgramming (OOP) inphpdiffersignifiancely instructure, réutilisabilité et datahandling.1.ProceduralProgrammingususFonctionnets organisé sécrégence, approprié modéliste.2.

PhpDoOesNothAveAbilt-InweakMapButoffersWeakreferenceForsiMarFonctionality.1.WeakReferenceallowsholdingreferences withoutpreventinggarbageCollection.2.itisationfulforcaching, les événements, et lametadatawithoutaffectingobjectlifecycles.3.

Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.
