evo-mark/evo-laravel-service-facades

Support package for easily using the service/facade pattern

1.0.0 2024-09-11 08:23 UTC

This package is auto-updated.

Last update: 2024-09-11 10:04:07 UTC


README

Build status Total Downloads License

Evo Laravel Service Facades

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.

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"]
    );
}