Null Object - поведінка за замовчуванням
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Unit of Work групує кілька змін у єдину транзакцію, щоб вони застосувалися разом або не застосувалися зовсім.
Складна операція часто змінює кілька записів (списання, резерв, лог). Якщо частина збережеться, а на наступному кроці станеться помилка, дані лишаться у неузгодженому стані.
Усі зміни об'єднуються в одну транзакцію: при успіху - commit, при винятку - rollback усього разом. У Laravel цю роль виконує DB::transaction(): зміни всередині замикання застосовуються атомарно.
DB::transaction(function () use ($order, $items) {
$order->status = 'paid';
$order->save();
foreach ($items as $item) {
$item->status = 'reserved';
$item->save();
}
PaymentLog::create([
'order_id' => $order->id,
'amount' => $order->total,
]);
});
DB::transaction() автоматично робить commit при успіху і rollback при винятку, а ще вміє повторювати транзакцію при deadlock (другий аргумент - кількість спроб).
save().31 / 34
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Пропускає дані через серію кроків, де кожен трансформує вхід і передає далі. Готовий Illuminate\Pipeline\Pipeline та його зв'язок із middleware.
PHP (Laravel) розробник для розвитку backend-платформи. Основні задачі: розробка multi-tenant ядра на Laravel, проєктування моделей даних для мультигео, REST API та інтеграції з зовнішніми сервісами, оптимізація продуктивності. Вимоги: 5+ років back-end досвіду (4+ з Laravel), PHP 8+, реляційні БД, API, кешування, Git/Docker/CI-CD, англійська B1+.
PHP-розробник на Laravel для розвитку multi-tenant платформи. Основна робота: розвиток ядра на Laravel, проєктування моделей даних, розробка REST API, оптимізація продуктивності, технічне проєктування. Вимоги: 5+ років back-end розробки (4+ з Laravel), PHP 8+, реляційні БД, Git, Docker, CI/CD, англійська B1+.
Middle Backend розробник для високонавантаженої e-commerce платформи. Розробка на PHP 7.4+ з фреймворками Yii/Yii2, Laravel/Symfony. Основні задачі: оптимізація коду, робота з архітектурою систем, інтеграція API, участь у переході на мікросервісну архітектуру. Вимоги: 3+ років досвіду PHP, OOP, SOLID, 2+ років з Yii/Yii2, знання MySQL, Redis, RabbitMQ, Docker, Git, Scrum.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.