forked from moodlehq/refactoring-interview
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlib.php
31 lines (27 loc) · 913 Bytes
/
lib.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Builder\SchoolBuilder;
use Repository\LocalFileCourseRepository;
use Repository\LocalFileEnrolmentRepository;
use Repository\LocalFileSchoolRepository;
use Repository\LocalFileUserRepository;
use Service\CourseService;
use Service\EnrolmentService;
use Service\SchoolService;
use Service\UserService;
function getSchoolService(): SchoolService
{
return new SchoolService(new LocalFileSchoolRepository(), new SchoolBuilder());
}
function getCourseService(): CourseService
{
return new CourseService(new LocalFileCourseRepository());
}
function getUserService(): UserService
{
return new UserService(new LocalFileUserRepository(), getEnrolmentService());
}
function getEnrolmentService(): EnrolmentService
{
return new EnrolmentService(new LocalFileEnrolmentRepository(), new LocalFileUserRepository(), new LocalFileCourseRepository());
}