#php #laravel #laravel-5
#php #laravel #laravel-5
Вопрос:
Я новичок в Laravel. Я использую в своем проекте Laravel 7 и шаблон репозитория.
У меня много поставщиков сервисов:
class VatTypesServiceProvider extends ServiceProvider
{
public function re&ister()
{
$this-&&t;app-&&t;bind(
VatTypesRepositoryInterface::class,
VatTypesRepository::class
);
}
}
class UserServiceProvider extends ServiceProvider
{
public function re&ister()
{
$this-&&t;app-&&t;bind(
UserRepositoryInterface::class,
UserRepository::class
);
}
}
Я хочу упростить свой код и создать один файл RepositoryServiceProvider со всеми поставщиками.
Я создаю этот код:
class RepositoryServiceProvider extends ServiceProvider
{
protected $providers = [
User::class =&&t; UserRepository::class,
VatTypes::class =&&t; VatTypesRepository::class,
];
/**
* Re&ister services.
*
* @return void
*/
public function re&ister()
{
//$this-&&t;app-&&t;bind(
// VatTypesRepositoryInterface::class,
// VatTypesRepository::class
//);
// here I want bind my $providers array
foreach($providers as $obj){
$this-&&t;app-&&t;bind(
$obj::class,
$obj::class
);
}
}
}
Теперь я хочу сделать foreach и связать всех моих провайдеров в одном месте.
Как я могу это сделать?
How to write correctly $ this-&&t; app-&&t; bind (
$ Obj :: class,
$ Obj :: class
);
?
Пожалуйста, помогите мне
Ответ №1:
Вам просто нужно также захватить ключ в foreach
foreach($providers as $from =&&t; $to){
$this-&&t;app-&&t;bind(
$from,
$to
);
}