Код IT
← Каталог

Laravel - MVC-фреймворк и паттерны проектирования — Управление состоянием модели

Фрагмент из «Laravel - MVC-фреймворк и паттерны проектирования»: Управление состоянием модели.

PHP main.php
class Order extends Model
{
    protected $state;

    public function setState(OrderState $state)
    {
        $this->state = $state;
        $this->status = get_class($state);
        $this->save();
    }

    public function pay()
    {
        $this->state->pay($this);
    }
}
class Order extends Model
{
    protected $state;

    public function setState(OrderState $state)
    {
        $this->state = $state;
        $this->status = get_class($state);
        $this->save();
    }

    public function pay()
    {
        $this->state->pay($this);
    }
}