Attenzione: è necessario partire dalla versione 5.8 prima di seguire questa guida!
Per poter aggiornare Laravel alla versione 6.x è necessario fare un po' di ordine nei pacchetti che solitamente sono inclusi nell'ambiente base.
In particolare l'ecosistema zofe ha qualche problema di aggiornamento e il fatto di essere incluso come dipendenza di jsm/base complica la questione.
Quindi prima di iniziare la procedura di aggiornamento di laravel vanno fatti i seguenti passi
1) Aggiornare composer.json includendo i riferimenti ai nuovi repository per i componenti
"jsm-base": {"type": "vcs","url": "https://git.sinergo.it/r/jsmLaravel/Base.git"},"txd-field-types": {"type": "vcs","url": "https://git.sinergo.it/r/txdPackage/fieldTypes.git"},"jsm-models-generator": {"type": "vcs","url": "https://git.sinergo.it/r/jsmLaravel/models-generator.git"},"jsm-doc": {"type": "vcs","url": "https://git.sinergo.it/gitblit/r/jsmLaravel/Doc.git"},"jsm-storage": {"type": "vcs","url": "https://git.sinergo.it/gitblit/r/jsmLaravel/Storage.git"},"jsm-postman": {"type": "vcs","url": "https://git.sinergo.it/gitblit/r/jsmLaravel/Postman.git"},"zofe-rapyd": {"type": "vcs","url": "https://github.com/techseed-srl/rapyd-laravel.git"},"zofe-burp": {"type": "vcs","url": "https://github.com/techseed-srl/burp.git"},"chumper-zipper": {"type": "vcs","url": "https://github.com/Markofly/Zipper.git"},"biscolab-laravel-gestpay": {"type": "vcs","url": "https://github.com/techseed-srl/laravel-gestpay.git"}
2) aggiornare jsm/base:
composer require jsm/base
3) installare nuovamente i pacchetti zofe non più presenti
composer require zofe/rapyd:dev-master
composer require zofe/burp:dev-master
4) opzionale
//se è presente chumper/zipper
composer remove chumper/zipper
//se è presente biscolab/laravel-gestpay
composer remove biscolab/laravel-gestpay
//quindi aggiornamento del file composer.json con le versioni opportune e i vari repository "forkati" e poi
composer update
composer require chumper/zipper:dev-master
composer require biscolab/laravel-gestpay:dev-master
5) a questo punto si può seguire la guida ufficiale di aggiornamento di laravel, ma in linea generale le cose da fare sono:
composer require laravel/helpers
composer update
Per forzare il controllo della corretta versione di php, si può aggiungere il seguente codice nella funzione register() di AppServiceProvider.php
$versione = config("par.php_min_version", 70000);if(defined("PHP_VERSION_ID") && PHP_VERSION_ID < $versione){$messaggio = "Attenzione! Versione di PHP diversa da quella richiesta. Attesa: ".$versione." -- Rilevata: ".PHP_VERSION_ID;\Log::warning($messaggio);echo $messaggio;abort(400, $messaggio);}
Quindi aggiungere la seguente riga nel file config/par.php
"php_min_version" => 70200,