Strategy - вибір поведінки
Виносить взаємозамінні алгоритми в окремі класи за спільним інтерфейсом. Тарифи, доставка, знижки - без каскадів if, з вибором через контейнер.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Builder збирає складний об'єкт поетапно, крок за кроком, замість того щоб передавати все одразу у конструктор.
Коли об'єкт має багато опцій, конструктор розростається до десятка аргументів, половина з яких опціональні. Виклик new Report('Sales', $rows, true, false, null, ...) стає нечитабельним, а порядок аргументів - джерелом помилок.
Окремий білдер тримає проміжний стан і надає fluent-методи для кожної опції. Кожен метод повертає $this, тож виклики ланцюжаться, а фінальний build() збирає готовий об'єкт. Читач бачить, що саме налаштовується, бо кожен крок має ім'я.
class Report
{
public function __construct(
public string $title,
public array $rows,
public bool $withTotals,
) {}
}
class ReportBuilder
{
private string $title = 'Report';
private array $rows = [];
private bool $withTotals = false;
public function title(string $title): self
{
$this->title = $title;
return $this;
}
public function rows(array $rows): self
{
$this->rows = $rows;
return $this;
}
public function withTotals(bool $value = true): self
{
$this->withTotals = $value;
return $this;
}
public function build(): Report
{
return new Report($this->title, $this->rows, $this->withTotals);
}
}
$report = (new ReportBuilder())
->title('Sales')
->rows([['product' => 'Book', 'sum' => 100]])
->withTotals()
->build();
Query Builder, Mail, Notification, Http - це ланцюжки методів, що поетапно конфігурують об'єкт перед виконанням.build().new Report(title: 'Sales')) зрозуміліші за окремий білдер.2 / 21
Виносить взаємозамінні алгоритми в окремі класи за спільним інтерфейсом. Тарифи, доставка, знижки - без каскадів if, з вибором через контейнер.
Змінює поведінку об'єкта залежно від стану, прибираючи каскади if. Замовлення, підписки, оплати та пакет spatie/laravel-model-states.
Middle Full Stack розробник для платформи e-commerce на мікросервісах. 70% PHP (Laravel/Symfony, REST APIs, MySQL/PostgreSQL, Redis), 30% React та Blade шаблони. Потрібно 3+ років досвіду з PHP 8.x, Docker, Git, готовність працювати з AI-інструментами (Claude Code, Cursor, Copilot). Можливість розвитку в AI-інженерингу на production-фічах.
Розробка та підтримка кастомної CRM-системи для доставки з використанням Laravel 12, Filament 5 та Livewire. Спеціаліст займатиметься проектуванням бази даних, розробкою модулів прийому/обробки замовлень, інтеграцією через REST API та оптимізацією. Вимагається глибоке розуміння Laravel, Filament та PostgreSQL, досвід з Livewire та SQL-оптимізацією. Важливі автономність і відповідальність.
Розробник PHP/Laravel для фінтех-проекту на мікросервісній архітектурі. Відповідатиме за підтримку та покращення кодової бази, оптимізацію продуктивності, роботу з MySQL, Redis, черг. Потрібні 2+ роки комерційної розробки, 1+ років PHP (Laravel), розуміння OOP та SOLID, мінімальні знання HTML/CSS/JS.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.