Skip to content

Commit 7f06164

Browse files
committed
Improve performance with less controllers
1 parent ae0dde6 commit 7f06164

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

api.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,6 +1737,7 @@ private function getOptions(): array
17371737
$options = array(
17381738
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
17391739
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
1740+
\PDO::ATTR_PERSISTENT => true,
17401741
);
17411742
switch ($this->driver) {
17421743
case 'mysql':return $options + [
@@ -4241,7 +4242,6 @@ public function __construct(Config $config)
42414242
);
42424243
$cache = CacheFactory::create($config);
42434244
$reflection = new ReflectionService($db, $cache, $config->getCacheTime());
4244-
$definition = new DefinitionService($db, $reflection);
42454245
$responder = new Responder();
42464246
$router = new SimpleRouter($responder, $cache, $config->getCacheTime());
42474247
foreach ($config->getMiddlewares() as $middleware => $properties) {
@@ -4266,20 +4266,21 @@ public function __construct(Config $config)
42664266
break;
42674267
}
42684268
}
4269-
$data = new RecordService($db, $reflection);
4270-
$openApi = new OpenApiService($reflection);
42714269
foreach ($config->getControllers() as $controller) {
42724270
switch ($controller) {
42734271
case 'records':
4274-
new RecordController($router, $responder, $data);
4272+
$records = new RecordService($db, $reflection);
4273+
new RecordController($router, $responder, $records);
42754274
break;
42764275
case 'columns':
4276+
$definition = new DefinitionService($db, $reflection);
42774277
new ColumnController($router, $responder, $reflection, $definition);
42784278
break;
42794279
case 'cache':
42804280
new CacheController($router, $responder, $cache);
42814281
break;
42824282
case 'openapi':
4283+
$openApi = new OpenApiService($reflection);
42834284
new OpenApiController($router, $responder, $openApi);
42844285
break;
42854286
}

src/Tqdev/PhpCrudApi/Api.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public function __construct(Config $config)
3737
);
3838
$cache = CacheFactory::create($config);
3939
$reflection = new ReflectionService($db, $cache, $config->getCacheTime());
40-
$definition = new DefinitionService($db, $reflection);
4140
$responder = new Responder();
4241
$router = new SimpleRouter($responder, $cache, $config->getCacheTime());
4342
foreach ($config->getMiddlewares() as $middleware => $properties) {
@@ -62,20 +61,21 @@ public function __construct(Config $config)
6261
break;
6362
}
6463
}
65-
$data = new RecordService($db, $reflection);
66-
$openApi = new OpenApiService($reflection);
6764
foreach ($config->getControllers() as $controller) {
6865
switch ($controller) {
6966
case 'records':
70-
new RecordController($router, $responder, $data);
67+
$records = new RecordService($db, $reflection);
68+
new RecordController($router, $responder, $records);
7169
break;
7270
case 'columns':
71+
$definition = new DefinitionService($db, $reflection);
7372
new ColumnController($router, $responder, $reflection, $definition);
7473
break;
7574
case 'cache':
7675
new CacheController($router, $responder, $cache);
7776
break;
7877
case 'openapi':
78+
$openApi = new OpenApiService($reflection);
7979
new OpenApiController($router, $responder, $openApi);
8080
break;
8181
}

0 commit comments

Comments
 (0)