Outils pour utilisateurs

Outils du site


devweb:laravel:upgrade (lu 10750 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
devweb:laravel:upgrade [12-04-2021 10:06]
edmc73 créée
devweb:laravel:upgrade [26-08-2023 23:58] (Version actuelle)
edmc73
Ligne 1: Ligne 1:
 ====== Upgrade ====== ====== Upgrade ======
  
-===== Sur changement de version de php ======+===== passer de laravel 6 à 8 ======
  
 +Créons une nouvelle branch dans notre projet
 +  git checkout -b laravel-upgrade
 +  
 +Ajouter le dépôt de laravel
 +  git remote add laravel https://github.com/laravel/laravel.git
  
-  ErrorException in Builder.php line 876: +Récupérer les informations du dépôt 
-  compact(): Undefined variable: operator+  git fetch laravel
  
-  vi vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php+Merger la version 8.x 
 +  git merge laravel/8.x  
 +  fatal: refus de fusionner des historiques sans relation 
 + 
 +  git merge --no-commit --allow-unrelated-histories laravel/8.x 
 + 
 +Valider tous les conflits avec l'éditeur de votre choix, puis commitez le merge 
 + 
 +Si vous avez bien mis à jour le composer.json, lancer un composer update 
 +  composer update 
 + 
 +Si certaine version dans le composer.json ne sont plus compatible, supprimer la ligne dans le composer et lancer la commande suivante sans spécifier la version 
 +  composer require laravel/ui 
 +  composer require yajra/laravel-datatables 
 +   
 + 
 +ATTENTION: avec cette méthode, j'ai l'impression qu'on récupère tout l'historique des commits de laravel 
 + 
 +Donc, une fois que toutes les modifs sont faites, Copier/coller tous vos fichiers dans une nouvelle branche de votre projet tout propre (en excluant le dossier .git) 
 + 
 +<code bash> 
 +# se mettre dans votre projet laravel 6 propre 
 +git checkout -b laravel8 
 + 
 +# copier tous les fichiers de votre projet upgradé sur la nouvelle branche de votre projet actuel 
 +rsync -a --exclude '.git' /projet_migré_en_laravel8/projet/ 
 + 
 +# pouvez maintenant faire un commit de toutes les modifs de votre projet 
 + 
 +# il se peut que le dossier vendor soit tout pourri 
 +rm -fr vendor 
 +composer install
  
-cherche  
-<code php> 
- 872     public function addWhereExistsQuery(Builder $query, $boolean = 'and', $not = false) 
- 873     { 
- 874         $type = $not ? 'NotExists' : 'Exists'; 
- 875 
- 876         $this->wheres[] = compact('type', 'operator', 'query', 'boolean'); 
- 877 
- 878         $this->addBinding($query->getBindings(), 'where'); 
- 879 
- 880         return $this; 
- 881     } 
 </code> </code>
-et remplace + 
-<code php> + 
- 872     public function addWhereExistsQuery(Builder $query, $boolean 'and', $not false+Penser à mettre à jour nodejs et npm 
- 873     { + 
- 874         $type = $not ? 'NotExists: 'Exists'; + 
- 875 +===== passer de laravel 6 à 8 (alternative====== 
- 876         $this->wheres[] compact('type', 'query''boolean'); + 
- 877 +Même manip qu'au dessus mais en utilisant l'option depth 
- 878         $this->addBinding($query->getBindings(), 'where'); + 
- 879 + 
- 880         return $this; +===== bdd ===== 
- 881     }+ 
 +Quelques modifs à noter 
 +<code> 
 +// La table userajouter un champ 
 + 
 +$table->timestamp('email_verified_at')->nullable(); 
 + 
 +// la table password_resets, le champ created_at peut-être maintenant NULL 
 + 
 +// voir aussi la table failed-job 
 + 
 + 
 </code> </code>
  
 +===== Voir les modifs faites entre 2 versions de laravel =====
  
-  ErrorException in Builder.php line 1231: +Exemple des fichiers modifiés entre la version 6.x et 8.x de laravel
-  count(): Parameter must be an array or an object that implements Countable+
  
-  vi vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php+https://github.com/laravel/laravel/compare/6.x...8.x 
 + 
 +===== Passer de gulp à laravel-mix ===== 
 + 
 +combiner du less avec du css. L'option processCssUrls peut être utile dans le cas des fichiers de fonts 
 +<code> 
 +mix.less('resources/assets/less/bootstrap.less', 'public/css/bootstrap.css'
 +.options({ 
 +    processCssUrls: false 
 +}); 
 + 
 +mix.styles([ 
 +    'public/css/bootstrap.css', 
 +    'resources/assets/css/font-awesome.min.css', 
 +], 'public/css/app.css');
  
-cherche 
-<code php> 
-1222     protected function callScope(callable $scope, $parameters = []) 
-1223     { 
-1224         array_unshift($parameters, $this); 
-1225 
-1226         $query = $this->getQuery(); 
-1227 
-1228         // We will keep track of how many wheres are on the query before running the 
-1229         // scope so that we can properly group the added scope constraints in the 
-1230         // query as their own isolated nested where statement and avoid issues. 
-1231         $originalWhereCount = count($query->wheres); 
-1232 
-1233         $result = $scope(...array_values($parameters)) ?: $this; 
-1234 
-1235         if ($this->shouldNestWheresForScope($query, $originalWhereCount)) { 
-1236             $this->nestWheresForScope($query, $originalWhereCount); 
-1237         } 
-1238 
-1239         return $result; 
-1240     } 
 </code> </code>
-et remplace + 
-<code php+combiner les js 
-1222     protected function callScope(callable $scope, $parameters = []) +<code> 
-1223     { +mix.scripts([ 
-1224         array_unshift($parameters, $this); +    'resources/assets/js/jquery.min.js', 
-1225 +    'resources/assets/js/bootstrap.min.js'
-1226         $query = $this->getQuery(); +]'public/js/app.js');
-1227 +
-1228         // We will keep track of how many wheres are on the query before running the +
-1229         // scope so that we can properly group the added scope constraints in the +
-1230         // query as their own isolated nested where statement and avoid issues. +
-1231         $originalWhereCount = count((array)$query->wheres); +
-1232 +
-1233         $result = $scope(...array_values($parameters)) ?: $this; +
-1234 +
-1235         if ($this->shouldNestWheresForScope($query$originalWhereCount)) { +
-1236             $this->nestWheresForScope($query$originalWhereCount); +
-1237         } +
-1238 +
-1239         return $result; +
-1240     }+
 </code> </code>
 +
 +Puis versionner le tout
 +<code>
 +mix.version([
 +    'public/css/app.css',
 +    'public/js/app.js'
 +],'public/build');
 +</code>
 +
 +Utiliser maintenant le helper mix() à la place de elixir()
 +
 +
 +===== en passant de laravel 8 à 10 =====
 +
 +Après avoir galérer pour passer de elixir à laravel mix, nous voici avec Vite ....
 +Heureusement, on peut toujours garder laravel mix en gardant notre fichier packages.json intact
 +
 +https://github.com/laravel/vite-plugin/blob/main/UPGRADE.md#migrating-from-vite-to-laravel-mix
 +
 +
  
devweb/laravel/upgrade.1618214776.txt.gz · Dernière modification: 12-04-2021 10:06 de edmc73