Downloads
Stars
Version
Laravel Helper for targeting classes by their traits.
$ composer require berthott/laravel-targetable
berthott\Targetable\Services\TargetableService
class TestService extends TargetableService
{
public function __construct()
{
parent::__construct(YourTrait::class, 'your-config');
}
}
tests/BasicTargetable
Mode::Contract
as a 3rd argument on TargetableServiceTo change the default options add the following options to your librarys config file:
namespace
: String or array with one ore multiple namespaces that should be monitored for the configured trait. Defaults to App\Models
.namespace_mode
: Defines the search mode for the namespaces. ClassFinder::STANDARD_MODE
will only find the exact matching namespace, ClassFinder::RECURSIVE_MODE
will find all subnamespaces. Defaults to ClassFinder::STANDARD_MODE
.prefix
: Defines the route prefix. Defaults to api
.Your config might look like this:
<?php
use HaydenPierce\ClassFinder\ClassFinder;
return [
/*
|--------------------------------------------------------------------------
| Model Namespace Configuration
|--------------------------------------------------------------------------
|
| string or array with one ore multiple namespaces that should be monitored
| for the configured trait. Defaults to App\Models.
|
*/
'namespace' => 'App\Models',
/*
|--------------------------------------------------------------------------
| Model Namespace Search Option
|--------------------------------------------------------------------------
|
| Defines the search mode for the namespaces. ClassFinder::STANDARD_MODE
| will only find the exact matching namespace, ClassFinder::RECURSIVE_MODE
| will find all subnamespaces. Defaults to ClassFinder::STANDARD_MODE.
|
| Beware: ClassFinder::RECURSIVE_MODE might cause some testing issues.
|
*/
'namespace_mode' => ClassFinder::STANDARD_MODE,
/*
|--------------------------------------------------------------------------
| Route Prefix
|--------------------------------------------------------------------------
|
| Defines the route prefix. Defaults to 'api'.
|
*/
'prefix' => 'api',
];
Tested with Laravel 10.x.
See License File. Copyright © 2023 Jan Bladt.