Comment rendre installable une application Laravel ?

Par Alan Pilloud
Publié le 15 janvier 2017

Pour installer une application Laravel, on a au minimum besoin d’exécuter composer install et php artisan migrate.

Cela rend difficile la distribution grand public d’une application.

Pour les besoins de mon outil WordPress Sphinge, j’ai cherché une solution pour une installation simple et efficace.

Et j’ai trouvé :

Pour l’installation des dépendances Composer, il n’y a pas d’autre moyen que de proposer un paquet contenant le dossier vendor.

Au niveau de la base de données, je suis tombé sur le package Laravel Web Installer. J’ai testé et intégré ce dernier à Sphinge.

Il permet de vérifier les extensions PHP requises, éditer le fichier .env de l’application et contrôler les droits sur différents dossiers.

Et ça installe les migrations et seeds !

Voici ce que ça donne :

Démo Laravel Installer

Superbe !

Voici donc comment procéder à l’installation de ce package.

Installation de l’installeur

Marrant ce titre :)

Vous trouverez la documentation originale ici : la page github du projet

En premier, ajoutez le package à vos dépendances Composer :

$ composer require rachidlaasri/laravel-installer
$ composer update

Dans votre fichier config/app.php, ajoutez le provider suivant :

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */
    //...

    /*
     * Package Service Providers...
     */
    RachidLaasri\LaravelInstaller\Providers\LaravelInstallerServiceProvider::class,

    //...
]

Et terminez l’installation en exécutant cette ligne :

php artisan vendor:publish --provider="RachidLaasri\LaravelInstaller\Providers\LaravelInstallerServiceProvider"

Et c’est installé !

Pour que l’installeur fonctionne, il faut fournir un fichier .env pour lequel APP_ENV est défini à local et que APP_KEY possède une clé générée par la commande php artisan key:generate.

Pour savoir si l’installation a déjà effectuée, l’installeur vérifie l’existence du fichier /storage/installed. N’oubliez pas d’exclure ce fichier de votre git, sans quoi vous risquez de publier une release ne pouvant pas être installée.

Configuration de l’installeur

Dans le fichier config/installer.php se trouvent les configurations vous permettant d’adapter les extensions php requises ainsi que les droits minimum requis par dossier.

On peut aussi modifier le style qui se trouve dans public/installer/css ainsi que les templates blade qui se trouvent dans resources/views/vendor/installer.

Super clean !

En conclusion, ça m’a fait gagner beaucoup de temps !

Je suis bien content d’avoir trouvé ce package. Il me reste toutefois un problème à régler : les updates.

Et oui, il faut bien pouvoir appliquer les migrations fournies dans les releases suivantes de l’application.

Update : Laravel Web Installer dispose d’une fonction d’Update

Afin d’ajouter la fonctionnalité d’update dont j’avais besoin, j’ai décidé de contributer au projet Laravel Web Installer.

L’auteur du package a integré la nouvelle fonctionnalité et on n’attend plus que la prochaine release !

Envie d'en parler ?

Ecrivez un email ou DM sur twitter