Table des matières

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