使用模型与创建和绑定类

时间:2019-01-03 18:14:22

标签: laravel-5

我不理解在服务提供者中绑定类的想法。 我阅读了有关Laravel服务提供商和容器的文章。我知道服务提供者是一种组织服务对象绑定到IoC的方法,当您的应用程序很大时很有用。让我们看看这种情况。我创建了4个课程:

class Person
{
    public $name;
    public $surname;

    public function __construct($name, $surname)
    {
        $this->name = $name;
        $this->surname = $surname;
    }

  }


class Car
{

public $model;


public function __construct($model)
{
    $this->model = $model;
}
}


class Adres
{

    public function __construct($street, $city)
    {
        $this->street = $street;
        $this->city = $city;
    }

}

class PremiumClient
{

    public function __construct(Person $p, Car $c, Adres $a)
    {
        $this->person = $p;
        $this->car = $c;
        $this->adres = $p;
    }
}

如您所见,我正在尝试向PremiumClient类注入三个依赖项。我可以用雄辩的关系创建4个模型来加入它们。那么为什么建议像这样在服务提供者中绑定类:

class AppServiceProvider extends ServiceProvider
{

    public function boot()
    {
        Schema::defaultStringLength(191);
        $this->app->bind('Car', function ($app, $p) {
            return new Car($p[0]);
        });

        $this->app->bind('Adres', function ($app, $p) {
            return new Adres($p[0], $p[1]);
        });

        $this->app->bind('Person', function ($app, $p) {
            return new Person($p[0], $p[1]);
        });

        $this->app->bind('Premium', function ($app, $p) {
            return new Premium(App::make('Person'),App::make('Car'),App::make('Adres'));
        });
}

当您可以使用模型实现相同的目标时,我无法理解绑定类的好处。什么时候应该使用模型,何时创建类并进行绑定?请帮忙。

0 个答案:

没有答案