Visitor - операції над структурами
Додає нові операції над набором об'єктів, не змінюючи їхні класи. Коли операцій більше, ніж типів, і чому новий тип об'єкта - слабке місце патерну.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Repository відділяє бізнес-логіку від деталей доступу до даних за стабільним контрактом читання й запису.
Коли сервіси звертаються до ORM напряму, бізнес-логіка прив'язується до Eloquent: запити розповзаються по коду, а підмінити джерело даних чи перевірити логіку без бази стає складно.
Доступ до даних ховається за інтерфейсом-репозиторієм. Сервіс залежить від контракту, а конкретна реалізація (Eloquent, in-memory, API) підставляється через контейнер. У тестах дані легко підмінити фейком.
interface UserRepo
{
public function byId(int $id): ?User;
public function search(string $q);
}
class EloquentUserRepo implements UserRepo
{
public function byId(int $id): ?User
{
return User::find($id);
}
public function search(string $q)
{
return User::query()
->where('name', 'like', "%$q%")
->get();
}
}
class UserService
{
public function __construct(private UserRepo $repo) {}
public function show($id)
{
return $this->repo->byId($id);
}
}
24 / 24
Додає нові операції над набором об'єктів, не змінюючи їхні класи. Коли операцій більше, ніж типів, і чому новий тип об'єкта - слабке місце патерну.
Задає каркас алгоритму в базовому класі, а змінні кроки делегує нащадкам. Чим відрізняється від Strategy і коли спадкування поступається композиції.
FullStack розробник для проектів автоматизації та AI. Розробка backend на PHP Laravel з мікросервісною архітектурою, інтеграція ERP/CRM систем (NetSuite, HubSpot), та frontend на React з AI-функціоналом (chatbots, генерація контенту). Потребує 5+ років PHP, 3+ років Laravel на рівні архітектури, досвід мікросервісів, OOP, REST API, Websockets.
Full-Stack розробник для внутрішної B2B-платформи управління задачами. Розробка backend на Laravel 10/11 та frontend на Vue 3 + Inertia.js, проектування MySQL, тестування (PHPUnit/Vitest), робота з дизайн-системою Tailwind. Вимога: 3+ років досвіду з Laravel та Vue 3, знання Inertia.js/SPA, MySQL, REST API, Git-флоу, SOLID.
FullStack розробник для AI-продукту. Розробка React-інтерфейсів та PHP Laravel мікросервісів, інтеграція з LLM (ChatGPT), оптимізація промптів. Вимоги: 5+ років PHP, 3+ років Laravel та React/TypeScript, досвід мікросервісної архітектури, OOP/SOLID, REST API, WebSocket.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.