Skip to content

yaleksandr89/php-design-patterns

Repository files navigation

Паттерны проектирования (PHP)

Проект с примерами реализации паттернов проектирования на PHP.


Типы паттернов

Порождающие (Creational)

Отвечают на вопрос: как создавать объекты.

Паттерны:


Структурные (Structural)

Отвечают на вопрос: как компоновать классы и объекты.

Паттерны:


Поведенческие (Behavioral)

Отвечают на вопрос: как объекты взаимодействуют друг с другом.

Паттерны:

  • Strategy
  • Mediator
  • ChainOfResponsibility
  • Observer
  • State
  • TemplateMethod
  • Visitor
  • Pipeline

Структура проекта

src/
  Creational/
  Structural/
  Behavioral/

Каждый паттерн может содержать несколько примеров:

PatternName/
  Example01/
  Example02/

Запуск проекта

Подготовка окружения

make docker-init
make docker-up
make composer-init

После запуска проект доступен по адресу:

http://design-patterns.local

Команды

Запуск контейнеров:

make docker-up

Остановка контейнеров:

make docker-down

Просмотр логов:

make docker-logs

Вход в контейнер PHP:

make docker-shell

Установка зависимостей Composer:

make composer-install

Оптимизация автозагрузки:

make composer-dump-autoload

Проверить код по стандарту PSR‑12

make lint

Исправить форматирование

make make lint-fix

Отладка

В проекте подключены:

  • Xdebug
  • symfony/var-dumper

Можно ставить breakpoints в PhpStorm, использовать dump() и dd(), а также просматривать Xdebug-логи в директории:

var/log/xdebug/

Требования

  • Docker
  • Docker Compose
  • запись в hosts:
127.0.0.1 design-patterns.local