====== Créer un package Laravel ====== ==== Installation de Laravel ==== ``` mkdir monprojet cd monprojet composer create-project laravel/laravel --prefer-dist . ``` ==== Dossier du package ==== Créer un dossier `packages` à la racine du projet puis ajouter un dossier `[VENDORNAME]/[PACKAGENAME]`. Exemple : `sebastienheyd/monpackage`. Dans ce dossier ajouter un dossier `src` ``` mkdir -p packages/sebastienheyd/monpackage/src ``` ==== Composer.json du package ==== On génère ensuite le composer.json en saisissant la commande : ``` cd packages/sebastienheyd/monpackage composer init ``` Dans le fichier composer.json qui vient d'être généré, ne pas oublier de rajouter les lignes pour le PSR-4, exemple : ``` "autoload": { "psr-4": { "Sebastienheyd\\Monpackage\\": "src/" } }, ``` ==== Composer.json du projet ==== Une fois fait, on modifie le composer.json à la racine du projet pour déclarer le package : ``` "minimum-stability": "dev", "repositories": [{ "type": "path", "url": "packages/*/*", "symlink": true }], "require": { // ... "sebastienheyd/monpackage": "*" }, ``` Pour finir on lance : ``` composer update ``` ==== Créer un service provider ==== Pour créer le service provider : ``` php artisan make:provider MonpackageServiceProvider ``` Puis déplacer le fichier généré dans le dossier du package : ``` mv app/Providers/MonpackageServiceProvider packages/sebastienheyd/monpackage/src ``` **Attention à bien changer le namespace dans le provider par `[VENDORNAME]\[PACKAGENAME]`** Dans le composer.json du package on ajoute l'autodiscover : ``` "extra": { "laravel": { "providers": [ "Sebastienheyd\\Monpackage\\MonpackageServiceProvider" ] } } ``` Pour la suite, voir ici : https://laraveldaily.com/how-to-create-a-laravel-5-package-in-10-easy-steps/