Create services with a backing facade in multiple pre-defined locations, then automatically load them into your application.
Generate PHP Doc annotations for your facades to enable type-hinting in your IDE.
composer require evo-mark/evo-laravel-service-facades
php artisan make:service
php artisan facades:annotate
To keep your annotations up-to-date, you should add the following to your application's composer.json
file:
"post-autoload-dump": [
"@php artisan facades:annotate --no-interaction"
],
By default, your app's Service and Facades folders will be used as the default "location". You can change this by publishing the package's config file.
You can also add to the available locations during application boot by calling:
use EvoMark\EvoLaravelServiceFacades\Facades\ServiceFacades;
public function boot()
{
ServiceFacades::registerLocation(
name: "Custom Location",
serviceNamespace: "App\\CustomServices",
facadeNamespace: "App\\CustomFacades",
servicePath: app_path('CustomServices'),
facadePath: app_path('CustomFacades'),
exclude = ["SomeExcludedService"]
);
}