evo-mark/evo-laravel-service-facades

Support package for easily using the service/facade pattern

v1.4.1 2025-01-25 23:08 UTC

This package is auto-updated.

Last update: 2025-01-25 23:09:50 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.

Installation

composer require evo-mark/evo-laravel-service-facades

Usage

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.

php artisan v:p --provider="EvoMark\EvoLaravelServiceFacades\Provider"

If you'd prefer, you can instead 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"]
    );
}