1 | <?php |
||
30 | class ContainerFactory |
||
31 | { |
||
32 | /** |
||
33 | * @return ContainerInterface |
||
34 | */ |
||
35 | 2 | public function create() |
|
36 | { |
||
37 | 2 | $pimple = new Container(); |
|
38 | 2 | $container = new PimpleContainer($pimple); |
|
39 | |||
40 | 2 | $container->setParameter('phuria.sql_builder.parameter_manager.class', ParameterManager::class); |
|
41 | |||
42 | 2 | $container->setServiceFromCallback('phuria.sql_builder.table_registry', [$this, 'createTableRegistry']); |
|
43 | 2 | $container->setServiceFromCallback('phuria.sql_builder.table_factory', [$this, 'createTableFactory']); |
|
44 | 2 | $container->setServiceFromCallback('phuria.sql_builder.query_compiler', [$this, 'createTableCompiler']); |
|
45 | 2 | $container->setServiceFromCallback('phuria.sql_builder.connection_manager', [$this, 'createConnectionManager']); |
|
46 | 2 | $container->setServiceFromCallback('phuria.sql_builder.query_factory', [$this, 'createQueryFactory']); |
|
47 | |||
48 | 2 | return $container; |
|
49 | } |
||
50 | |||
51 | /** |
||
52 | * @internal |
||
53 | * @return TableRegistry |
||
54 | */ |
||
55 | 1 | public function createTableRegistry() |
|
56 | { |
||
57 | 1 | return new TableRegistry(); |
|
58 | } |
||
59 | |||
60 | /** |
||
61 | * @internal |
||
62 | * @param Container $container |
||
63 | * |
||
64 | * @return TableFactory |
||
65 | */ |
||
66 | 1 | public function createTableFactory(Container $container) |
|
70 | |||
71 | /** |
||
72 | * @internal |
||
73 | * @return QueryCompiler |
||
74 | */ |
||
75 | 1 | public function createTableCompiler() |
|
85 | |||
86 | /** |
||
87 | * @internal |
||
88 | * @return ConnectionManager |
||
89 | */ |
||
90 | 1 | public function createConnectionManager() |
|
94 | |||
95 | /** |
||
96 | * @internal |
||
97 | * @param Container $container |
||
98 | * |
||
99 | * @return QueryFactory |
||
100 | */ |
||
101 | 1 | public function createQueryFactory(Container $container) |
|
105 | } |