You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Реалізувати патерн фабричний метод для створення об'єктів 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.