ПАТТЕРН СОСТОЯНИЕ PHP
Паттерн состояние (State) в PHP - это поведенческий паттерн проектирования, который позволяет изменять поведение объекта в зависимости от его состояния.
В данном паттерне объекты имеют внутреннее состояние, которое может изменяться, и на основе текущего состояния объекта происходят различные действия. Например, можно реализовать паттерн состояние для объекта "Заказ", который может находиться в состоянии "Новый", "Ожидает оплату", "Доставляется" и т.д.
Для реализации паттерна состояние в PHP можно использовать интерфейсы и абстрактные классы. Каждое состояние объекта реализуется в виде отдельного класса, который наследуется от абстрактного класса State:
abstract class State {    public abstract function handle(): string;} Конкретные классы состояний должны реализовывать абстрактный класс State:
class NewState extends State {    public function handle(): string {        return "Заказ в новом состоянии";    }} class PaymentState extends State {    public function handle(): string {        return "Ожидание оплаты";    }} class DeliveryState extends State {    public function handle(): string {        return "Доставка заказа";    }} Далее необходимо создать класс контекста Context, содержащий ссылку на текущее состояние:
class Context {    private $state;     public function __construct(State $state) {        $this->state = $state;    }     public function setState(State $state) {        $this->state = $state;    }     public function getState(): State {        return $this->state;    }     public function handle(): string {        return $this->state->handle();    }} Теперь можно создать объекты состояний и контекста и использовать их:
$newState = new NewState();$paymentState = new PaymentState();$deliveryState = new DeliveryState(); $context = new Context($newState);echo $context->handle(); // Выводит: "Заказ в новом состоянии" $context->setState($paymentState);echo $context->handle(); // Выводит: "Ожидание оплаты" $context->setState($deliveryState);echo $context->handle(); // Выводит: "Доставка заказа"
Паттерны проектирования для начинающих с примерами на PHP
Паттерны проектирования API
Объектно-ориентированное программирование и паттерны проектирования в PHP - 1
Нейронная сеть на PHP
Важнейший шаблон программирования из 23-х
Шаблоны проектирования микросервисов на примере Авито / Фрол Крючков (Авито)
System Design and Architecture: продвинутые паттерны
Состояние (state). Шаблоны проектирования.
State - Шаблон проектирования Состояние
Паттерн Фабрика на реальном примере в PHP



















