https://github.com/yaleksandr89/php-design-patterns
Проект с практическими примерами паттернов проектирования на PHP
https://github.com/yaleksandr89/php-design-patterns
architecture design-patterns design-patterns-php oop oop-php php php8 solid
Last synced: about 19 hours ago
JSON representation
Проект с практическими примерами паттернов проектирования на PHP
- Host: GitHub
- URL: https://github.com/yaleksandr89/php-design-patterns
- Owner: yaleksandr89
- License: other
- Created: 2026-04-16T11:22:33.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-04-16T11:45:42.000Z (2 months ago)
- Last Synced: 2026-04-16T13:26:13.212Z (2 months ago)
- Topics: architecture, design-patterns, design-patterns-php, oop, oop-php, php, php8, solid
- Language: Makefile
- Homepage:
- Size: 25.7 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Паттерны проектирования (PHP)
Проект с примерами реализации паттернов проектирования на PHP.
---
## Типы паттернов
### Порождающие (`Creational`)
Отвечают на вопрос: как создавать объекты.
**Паттерны:**
- [Factory](src/Creational/Factory)
- AbstractFactory
---
### Структурные (`Structural`)
Отвечают на вопрос: как компоновать классы и объекты.
**Паттерны:**
- [Adapter](src/Structural/Adapter)
- Bridge
- Composite
- [Decorator](src/Structural/Decorator)
- [Example01 — классический декоратор с базовым декоратором](src/Structural/Decorator/Example01)
- [Example02 — декоратор без базового декоратора](src/Structural/Decorator/Example02)
---
### Поведенческие (`Behavioral`)
Отвечают на вопрос: как объекты взаимодействуют друг с другом.
**Паттерны:**
- [Strategy](src/Behavioral/Strategy)
- Mediator
- ChainOfResponsibility
- Observer
- [State](src/Behavioral/State)
- TemplateMethod
- Visitor
- Pipeline
---
## Структура проекта
```text
src/
Creational/
Structural/
Behavioral/
```
Каждый паттерн может содержать несколько примеров:
```text
PatternName/
Example01/
Example02/
```
---
## Запуск проекта
### Подготовка окружения
```bash
make docker-init
make docker-up
make composer-init
```
После запуска проект доступен по адресу:
```text
http://design-patterns.local
```
---
## Команды
Запуск контейнеров:
```bash
make docker-up
```
Остановка контейнеров:
```bash
make docker-down
```
Просмотр логов:
```bash
make docker-logs
```
Вход в контейнер PHP:
```bash
make docker-shell
```
Установка зависимостей Composer:
```bash
make composer-install
```
Оптимизация автозагрузки:
```bash
make composer-dump-autoload
```
Проверить код по стандарту PSR‑12
```bash
make lint
```
Исправить форматирование
```bash
make make lint-fix
```
---
## Отладка
В проекте подключены:
- `Xdebug`
- `symfony/var-dumper`
Можно ставить breakpoints в PhpStorm, использовать `dump()` и `dd()`, а также просматривать Xdebug-логи в директории:
```text
var/log/xdebug/
```
---
## Требования
- Docker
- Docker Compose
- запись в `hosts`:
```text
127.0.0.1 design-patterns.local
```