- PHP 8.2
- Docker
- Symfony Server
- Склонуйте репозиторій
git clone https://github.com/anyt/design-patters-workshop.git - Запустіть сервіси за допомогою
docker-compose up -d - Встановіть застосунок за допомогою
composer install - Запустіть сервер за допомогою
symfony serve -d - Відкрийте сторінку в браузері за адресою https://127.0.0.1:8000/?student_id=1&course_id=5.
- Реалізувати патерн фабричний метод для створення об'єктів
EnrollmentзStudentтаCourse. - Створити інтерфейс
EmailFactoryInterface::createEmail(Student $student, Course $course): Emailта реалізувати патерн абстрактна фабрика для створення листів уLMSController. - Створити інтерфейс
EmailSenderInterface::sendEmail(string $to, string $subject, string $body): voidта реалізувати патерн адаптер відSymfony\Component\Mailer\MailerInterfaceдо нового інтерфейсу. - Створити окремий клас замість
App\Traits\LoggableToFileTraitта реалізувати патерн декоратор замість наслідуванняApp\Services\LoggableTransport. - Реалізувати патерн фасад для взаємодії з
Doctrine\ORM\EntityManagerInterfaceуLMSController. - Створити інтерфейс
CourseValidationStrategyInterface::validate(Student $student, Course $course): boolта реалізувати патерн стратегія для валідації курсів уLMSController. - Створити подію
StudentEnrolledEventта реалізувати патерн спостерігач для логування, відправки листів та гейміфікації уLMSControllerза допомогою посередника (symfony event dispatcher). - Створіть інтерфейс
GamificationVisitorInterface::visit(Student $student, Course $course): void. Використовуючи патерни відвідувач та компонувальник відрефакторіть логіку гейміфікації. - Реалізувати патерн ланцюжок обов'язків для валідації реєстрацій студентів у
LMSController.