Null Object - поведінка за замовчуванням
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
State дозволяє об'єкту змінювати поведінку залежно від внутрішнього стану так, ніби він змінив клас.
Об'єкти зі складним життєвим циклом (замовлення, підписка, оплата) обростають розгалуженнями if ($status === ...) у кожному методі. Логіка одного стану розмазана по сервісах, а додавання нового стану зачіпає всі ці місця.
Кожен стан стає окремим класом із власними правилами. Об'єкт делегує поведінку поточному стану, а той сам вирішує, у який стан перейти далі. Розгалуження if/switch зникають.
interface OrderState
{
public function pay(Order $order): void;
}
class PendingState implements OrderState
{
public function pay(Order $order): void
{
$order->state = new PaidState();
}
}
class PaidState implements OrderState
{
public function pay(Order $order): void
{
throw new LogicException('Already paid');
}
}
class Order
{
public function __construct(public OrderState $state) {}
public function pay(): void
{
$this->state->pay($this);
}
}
spatie/laravel-model-states.if/switch; логіка кожного стану зосереджена в одному класі.20 / 34
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Пропускає дані через серію кроків, де кожен трансформує вхід і передає далі. Готовий Illuminate\Pipeline\Pipeline та його зв'язок із middleware.
Розробка та підтримка додатків і мікросервісів на PHP, створення REST API, рефакторинг і оптимізація коду, інтеграція зі сторонніми сервісами. Основний стек: PHP від 3 років, Laravel або Symfony, MySQL/PostgreSQL, Redis, WebSocket. Потрібні знання SOLID, MVC та патернів проєктування, англійська на рівні читання технічної документації. Бажано досвід з мікросервісами, тестуванням (PHPUnit), чергами (RabbitMQ, Kafka) та React або Vue.
Розробник PHP backend, який створюватиме, підтримуватиме та оптимізуватиме застосунки, API й інтеграції із зовнішніми сервісами, зокрема платіжними та Google-сервісами. Ключовий стек: PHP, Laravel або Symfony, MySQL, MongoDB, REST API, ORM. Вимоги: впевнене знання ООП, MVC та SOLID, досвід оптимізації запитів і регулярне практичне використання Claude або Claude Code у щоденній розробці.
Розробник бекенду на PHP/Laravel для платформи охорони здоров'я (кредентиалінг, комплаєнс, стафінг, автоматизація робочих процесів). Завдання: проєктування REST API та масштабованої архітектури, робота з PostgreSQL, асинхронні черги (AWS SQS, RabbitMQ, Kafka), участь у AI-автоматизації та розробка краулерів. Вимоги: 4+ років бекенд або фулстек досвіду, сильний Laravel, продуктове мислення, англійська B2+.