Enables loading classes (or objects) via config files in Laravel
pionl/laravel-config-class-gate is a Laravel package for enables loading classes (or objects) via config files in laravel.
It currently has 1 GitHub stars and 17 downloads on Packagist (latest version v0.1).
Install it with composer require pionl/laravel-config-class-gate.
Discover more Laravel packages by pionl
or browse all Laravel packages to compare alternatives.
Last updated
You can provide overriding of your classes via config file (a list of classes defined by config key - like custom Eloquent model). With this you can work with expected model but add a posibility to allow extending of your base classes.
In default tries to load classes from the classes.php config file.
Example config (classes.php in config folder):
<?php
return [
"user" => App\\Models\\User::class
];
$userGate = ClassGate::gate("user");
$users = $userGate->all() // will call User::all()
or shortcut
// will call User::all()
$users = ClassGate::gate("user")->all();
$userGate = ClassGate::gate("user");
$user = $userGate->newInstance();
or shortcut
$user = ClassGate::instance("user");
$user = $userGate->theClass();
$userGate = ClassGate::gate("user");
or shortcut
$userClass = ClassGate::objectClass("user");
You can provide your own file or "array" path to the config via ClassGate::setConfigPath("models.list") which will find classes in models file and list array entry.
Example config (models.php in config folder):
<?php
return [
"othersKeys" : "...",
"list" => [
"user" => App\\Models\\User::class
]
];
ClassGate instanceClassGate::user() that will call ClassGate::gate("user")