Laravel IDE Helper
Laravel IDE Helper est un package qui génère des fichiers d'aide pour améliorer l'autocomplétion dans les éditeurs de code, Il permet de documenter les modèles et d'ajouter des annotations PHPDoc, rendant l'expérience de développement plus fluide.
Installation
Laravel IDE Helper s'installe facilement avec Composer. Il suffit d'exécuter la commande suivante :
1composer require --dev barryvdh/laravel-ide-helper
Par défaut, ce paquet utilise l'auto-découverte de paquets de Laravel. Il sera donc chargé automatiquement. Si, pour une raison, vous souhaitez contrôler manuellement sa mise en place, il faudra désactiver comportement dans le fichier composer.json
.
1"extra": {2 "laravel": {3 "dont-discover": [4 "barryvdh/laravel-ide-helper"5 ]6 }7}
Puis ajoutez le Provider dans le fichier config/app.php
:
1Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
Si vous souhaitez le charger uniquement dans un environnement local, il faudra plutôt ajouter le chargement du provider dans la méthode register du fichier AppServiceProvider.php
:
1public function register()2{3 if ($this->app->isLocal()) {4 $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);5 }6}
Utilisation
Avant la génération des fichiers, il faut exécuter la commande php artisan clear-compiled
afin de supprimer le fichier bootstrap/compiled.php
.
Il suffit ensuite d'exécuter les commandes suivantes pour générer les différents fichiers qui serviront pour l'autocomplétion :
1php artisan ide-helper:generate # Génération des PHPDocs pour les façades2php artisan ide-helper:models -M # Génération des PHPDocs pour les modèles3php artisan ide-helper:meta # Génération d'un meta fichier pour PHPStorm
La commande php artisan ide-helper:models
demande s'il faut écraser le modèle ou écrire les commentaires dans un fichier séparé _ide_helper_models.php
. Il est possible de forcer un choix en utilisant les paramètres -W
pour écrire les commentaires en en-tête de la classe du fichier du modèle, ou -M
pour écrire dans le fichier séparé.
Par défaut, tous les modèles présents dans app/Models
sont scannés. Il est possible de passer à la commande d'autres modèles à utiliser, y compris en dehors de ce dossier. Il est également possible de scanner différents répertoires, ou encore d'ignorer certains modèles.
1php artisan ide-helper:models "App\Models\Post" "App\Services\SMX\Models\Post" -M # Spécifier des modèles2php artisan ide-helper:models --dir="App\Models\Post" --dir="App\Services\SMX\Models" -M # Spécifier des dossiers3php artisan ide-helper:models --ignore="App\Models\Post,App\Models\Bookmark" # Ignorer des modèles
Il est également possible d'ignorer des modèles de manière persistante en publiant et en modifiant le fichier de configuration du package.
Configuration
Pour publier le fichier de configuration dans config/ide-helper.php
, il faut exécuter la commande suivante :
1php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
Pour persister le fait d'ignorer des modèles, il suffit de les ajouter dans le fichier de configuration.
1'ignored_models' => [2 App\Post::class,3 Api\Bookmark::class4],
Il est également possible d'activer la prise en charge de l'auto-complétion pour les méthodes Fluent comme $table->string("somestring")->nullable()->index();
depuis le fichier de configuration. Il faut simplement changer la ligne include_fluent
à true
.
1'include_fluent' => true,
Enfin, vous pouvez configurer votre composer.json
pour effectuer les opérations de génération des fichiers à chaque fois que vous mettez à jour vos dépendances.
1"scripts": {2 "post-update-cmd": [3 "Illuminate\\Foundation\\ComposerScripts::postUpdate",4 "@php artisan ide-helper:generate",5 "@php artisan ide-helper:meta"6 ]7},
Voici un aperçu des principales fonctionnalités de Laravel IDE Helper. Si vous souhaitez entrer plus dans les détails, je vous invite à consulter la page github du projet.