====== Upgrade ======
===== 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
Récupérer les informations du dépôt
git fetch laravel
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)
# 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
Penser à mettre à jour nodejs et npm
===== passer de laravel 6 à 8 (alternative) ======
Même manip qu'au dessus mais en utilisant l'option depth
===== bdd =====
Quelques modifs à noter
// La table user, ajouter 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
===== Voir les modifs faites entre 2 versions de laravel =====
Exemple des fichiers modifiés entre la version 6.x et 8.x de laravel
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
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');
combiner les js
mix.scripts([
'resources/assets/js/jquery.min.js',
'resources/assets/js/bootstrap.min.js',
], 'public/js/app.js');
Puis versionner le tout
mix.version([
'public/css/app.css',
'public/js/app.js'
],'public/build');
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