Я хотел бы упростить способ создания фасадов в своем приложении.
Предположим, у меня есть экземпляр foo
. Я хотел бы получить к нему доступ через фасад в любом месте моего приложения.
У меня есть:
app()->singleton('foo', Foobar\Bar\Foo::class);
Затем я зарегистрировал псевдоним в config/app.php
'aliases' => [
'Foo' => App\Facades\Foo::class
...
Затем я создал фасад для foo
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class User extends Facade
{
protected static function getFacadeAccessor()
{
return 'foo';
}
}
И теперь я могу получить доступ к экземпляру foo из любого места:
Foo::foo();
Есть ли способ упростить это до одной строки, такой как:
app()->registerFacade('foo', 'Foo');