Null Object - поведінка за замовчуванням
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Template Method задає каркас алгоритму в базовому класі, а окремі кроки делегує нащадкам.
Кілька варіантів алгоритму мають однакову загальну структуру, але відрізняються деталями окремих кроків. Якщо копіювати весь алгоритм у кожен варіант, спільна частина дублюється, і виправлення доводиться вносити в усі копії.
Базовий клас реалізує загальний алгоритм як послідовність викликів, частина яких - абстрактні чи перевизначувані методи. Нащадки заповнюють лише змінні кроки, не торкаючись каркаса.
abstract class ReportGenerator
{
public function generate(): array
{
$data = $this->fetchData();
$data = $this->transform($data);
return $this->format($data);
}
abstract protected function fetchData(): array;
protected function transform(array $data): array
{
return $data;
}
abstract protected function format(array $data): array;
}
class SalesReport extends ReportGenerator
{
protected function fetchData(): array
{
return Order::query()->pluck('total')->all();
}
protected function format(array $data): array
{
return ['sum' => array_sum($data)];
}
}
22 / 34
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Пропускає дані через серію кроків, де кожен трансформує вхід і передає далі. Готовий Illuminate\Pipeline\Pipeline та його зв'язок із middleware.
Розробник повного стеку для хмарної платформи управління дослідженнями. Розроблення функцій на PHP (Laravel) та Vue.js, побудова REST API, оптимізація продуктивності, написання тестів. Вимоги: міцні знання PHP та Laravel, досвід з Vue.js і JavaScript, англійська Upper-Intermediate+.
Старший/Lead PHP розробник з глибокою експертизою Laravel для побудови та інтеграції систем штучного інтелекту. Спеціаліст матиме відповідати за складні backend-функції, менторство інших розробників, проектування та впровадження AI-driven automation агентів в продукт. Вимоги: 6+ років досвіду на PHP, 4+ років Laravel, практичний досвід роботи з LLM API, контейнеризацією (Docker) та хмарними платформами, мова English Upper Intermediate+.
Middle Magento Back-End розробник займатиметься розробкою та підтримкою веб-магазинів на платформі Magento 2, їх оптимізацією. Вимагається практичний досвід з Magento 2 не менше 2 років, знання PHP (OOP), MySQL, Javascript, GIT. Бажані: розробка Magento Extensions, KnockoutJS, RequireJS, досвід з MVC-фреймворками та Docker.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.