Объектный цикл в Laravel 7 и привязка

#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
    );
}