Цель репозитория — вдохновить разработчиков понимать и использовать шаблоны проектирования с помощью различных примеров. Пожалуйста, рассмотрите возможность добавления примера для любого шаблона, который может помочь другим лучше понять шаблон.
Пожалуйста, следуйте инструкциям, чтобы запустить этот проект.
git clone https://github.com/basherr/PHP-Design-Patterns.git
composer install
composer test
public/
и выполните команду: php -S localhost:8000
Ознакомьтесь с файлом Routes.php для тестирования любого конкретного примера шаблона.
Если вы обнаружите, что какая-то реализация неверна или расплывчата, создайте проблему и позвольте нам помогать друг другу в изучении шаблонов проектирования .
Ваш вклад может оказать очень хорошее влияние на сообщество, поэтому постарайтесь поделиться всеми возможными примерами, о которых вы только можете подумать или которые вы испытали в прошлом.
Репозиторий не основан на каком-либо фреймворке, а скорее основан на No Framework.
Структура кода репозитория следующая:
app
bootstraps
public
stubs
tests
Жизненный цикл приложения выглядит следующим образом:
public/index.php
служит точкой входа для всего приложения, которое загружает boostrap/autoload.php
bootstrap/autoload.php
обрабатывает HTTP
запрос и перенаправляет маршрут соответствующему Controller method
определенному в bootstrap/routes.php
.Чтобы внести свой вклад и добавить реальный пример соответствующего шаблона, следуйте инструкциям:
app/Patterns/{Type eg Creational, Behavioral or Structural}/{Pattern Name}/{Example Name}/your code
unit tests
Application.php
с методом render
чтобы описать его использование. Пример приложения.phpbootstraps/routes.php
composer test
и убедитесь, что все тесты проходят успешно.Пожалуйста, не стесняйтесь вносить свой вклад и создавать запросы на включение.
Единственная консольная команда, доступная для создания тестов:
php .bootstrapsconsole_autoload.php MyAwesomeTestName
Пожалуйста, создайте проблему или присоединитесь к Discord для обсуждения.
Все кодовые базы лицензированы MIT , если не указано иное.