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/[VENDORNAME]/[PACKAGENAME]/src
Composer.json du package
On génère ensuite le composer.json en saisissant la commande :
cd packages/[VENDORNAME]/[PACKAGENAME] composer init
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": {
// ...
"[VENDORNAME]/[PACKAGENAME]": "*"
},
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/[VENDORNAME]/[PACKAGENAME]/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": [
"[VENDORNAME]\\[PACKAGENAME]\\MonpackageServiceProvider"
]
}
}
Pour la suite, voir ici : https://laraveldaily.com/how-to-create-a-laravel-5-package-in-10-easy-steps/