Skip to content

Commit bd366a1

Browse files
committed
Update factory namespaces
Refactor ConfigProvider Signed-off-by: Joey Smith <jsmith@webinertia.net> Signed-off-by: Joey Smith <jsmith@webinertia.net>
1 parent 0283457 commit bd366a1

12 files changed

Lines changed: 89 additions & 136 deletions

src/ConfigProvider.php

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,13 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql;
5+
namespace PhpDb\Mysql;
66

7-
use Laminas\ServiceManager\Factory\InvokableFactory;
87
use PhpDb\Adapter\Driver\DriverInterface;
9-
use PhpDb\Adapter\Driver\Pdo\Result;
108
use PhpDb\Adapter\Driver\Pdo\Statement as PdoStatement;
119
use PhpDb\Adapter\Driver\PdoDriverInterface;
12-
use PhpDb\Adapter\Mysql\Driver;
13-
use PhpDb\Adapter\Mysql\Metadata\Source\MysqlMetadata;
1410
use PhpDb\Adapter\Platform\PlatformInterface;
15-
use PhpDb\Adapter\Profiler;
1611
use PhpDb\Metadata\MetadataInterface;
17-
use PhpDb\ResultSet;
1812

1913
final class ConfigProvider
2014
{
@@ -29,36 +23,30 @@ public function getDependencies(): array
2923
{
3024
return [
3125
'aliases' => [
32-
'MySqli' => Driver\Mysqli\Mysqli::class,
33-
'MySQLi' => Driver\Mysqli\Mysqli::class,
34-
'Mysqli' => Driver\Mysqli\Mysqli::class,
35-
'mysqli' => Driver\Mysqli\Mysqli::class,
36-
'PDO_MySQL' => Driver\Pdo\Pdo::class,
37-
'Pdo_MySQL' => Driver\Pdo\Pdo::class,
38-
'Pdo_Mysql' => Driver\Pdo\Pdo::class,
39-
'pdo_mysql' => Driver\Pdo\Pdo::class,
40-
'pdomysql' => Driver\Pdo\Pdo::class,
41-
'pdodriver' => Driver\Pdo\Pdo::class,
42-
'pdo' => Driver\Pdo\Pdo::class,
43-
DriverInterface::class => Driver\Mysqli\Mysqli::class,
44-
PdoDriverInterface::class => Driver\Pdo\Pdo::class,
45-
Profiler\ProfilerInterface::class => Profiler\Profiler::class,
46-
ResultSet\ResultSetInterface::class => ResultSet\ResultSet::class,
47-
MetadataInterface::class => MysqlMetadata::class,
26+
'MySqli' => Driver::class,
27+
'MySQLi' => Driver::class,
28+
'Mysqli' => Driver::class,
29+
'mysqli' => Driver::class,
30+
'PDO_MySQL' => Pdo\Driver::class,
31+
'Pdo_MySQL' => Pdo\Driver::class,
32+
'Pdo_Mysql' => Pdo\Driver::class,
33+
'pdo_mysql' => Pdo\Driver::class,
34+
'pdomysql' => Pdo\Driver::class,
35+
'pdodriver' => Pdo\Driver::class,
36+
'pdo' => Pdo\Driver::class,
37+
DriverInterface::class => Driver::class,
38+
PdoDriverInterface::class => Pdo\Driver::class,
39+
MetadataInterface::class => Metadata\Source::class,
4840
],
4941
'factories' => [
50-
Driver\Mysqli\Mysqli::class => Container\MysqliDriverFactory::class,
51-
Driver\Mysqli\Connection::class => Container\MysqliConnectionFactory::class,
52-
Driver\Mysqli\Result::class => Container\MysqliResultFactory::class,
53-
Driver\Mysqli\Statement::class => Container\MysqliStatementFactory::class,
54-
Driver\Pdo\Pdo::class => Container\PdoDriverFactory::class,
55-
Driver\Pdo\Connection::class => Container\PdoConnectionFactory::class,
56-
MysqlMetadata::class => Container\MetadataInterfaceFactory::class,
57-
PdoStatement::class => Container\PdoStatementFactory::class,
58-
PlatformInterface::class => Container\PlatformInterfaceFactory::class,
59-
Profiler\Profiler::class => InvokableFactory::class,
60-
Result::class => Container\PdoResultFactory::class,
61-
ResultSet\ResultSet::class => InvokableFactory::class,
42+
Driver::class => Container\DriverInterfaceFactory::class,
43+
Connection::class => Container\ConnectionInterfaceFactory::class,
44+
Statement::class => Container\StatementInterfaceFactory::class,
45+
Pdo\Driver::class => Container\PdoDriverInterfaceFactory::class,
46+
Pdo\Connection::class => Container\PdoConnectionInterfaceFactory::class,
47+
Metadata\Source::class => Container\MetadataInterfaceFactory::class,
48+
PdoStatement::class => Container\PdoStatementFactory::class,
49+
PlatformInterface::class => Container\PlatformInterfaceFactory::class,
6250
],
6351
];
6452
}

src/Container/ConnectionInterfaceFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

77
use PhpDb\Adapter\Driver\ConnectionInterface;
8-
use PhpDb\Adapter\Mysql\Driver\Mysqli\Connection;
8+
use PhpDb\Mysql\Connection;
99
use Psr\Container\ContainerInterface;
1010

1111
final class ConnectionInterfaceFactory

src/Container/DriverInterfaceFactory.php

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

7-
use PhpDb\Adapter\Driver;
8-
use PhpDb\Adapter\Mysql\Driver\Mysqli;
7+
use PhpDb\Adapter\Driver\DriverInterface;
8+
use PhpDb\Mysql\Connection;
9+
use PhpDb\Mysql\Driver;
10+
use PhpDb\Mysql\Result;
11+
use PhpDb\Mysql\Statement;
912
use Psr\Container\ContainerInterface;
1013

1114
final class DriverInterfaceFactory
1215
{
13-
public function __invoke(ContainerInterface $container): Driver\DriverInterface&Mysqli\Mysqli
16+
public function __invoke(ContainerInterface $container): DriverInterface&Driver
1417
{
1518
/** @var array $config */
1619
$config = $container->get('config');
@@ -21,16 +24,15 @@ public function __invoke(ContainerInterface $container): Driver\DriverInterface&
2124
/** @var array $options */
2225
$options = $dbConfig['options'] ?? [];
2326

24-
/** @var Driver\ConnectionInterface&Mysqli\Connection $connectionInstance */
25-
$connectionInstance = $container->get(Mysqli\Connection::class);
27+
/** @var Driver\ConnectionInterface&Connection $connectionInstance */
28+
$connectionInstance = $container->get(Connection::class);
2629

27-
/** @var Driver\StatementInterface&Mysqli\Statement $statementInstance */
28-
$statementInstance = $container->get(Mysqli\Statement::class);
30+
/** @var Driver\StatementInterface&Statement $statementInstance */
31+
$statementInstance = $container->get(Statement::class);
32+
/** @var Driver\ResultInterface&Result $resultInstance */
33+
$resultInstance = $container->get(Result::class);
2934

30-
/** @var Driver\ResultInterface&Mysqli\Result $resultInstance */
31-
$resultInstance = $container->get(Mysqli\Result::class);
32-
33-
return new Mysqli\Mysqli(
35+
return new Driver(
3436
$connectionInstance,
3537
$statementInstance,
3638
$resultInstance,

src/Container/MetadataInterfaceFactory.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

77
use PhpDb\Adapter\AdapterInterface;
8-
use PhpDb\Adapter\Mysql\Metadata\Source\MysqlMetadata;
98
use PhpDb\Metadata\MetadataInterface;
9+
use PhpDb\Mysql\Metadata;
1010
use Psr\Container\ContainerInterface;
1111

1212
final class MetadataInterfaceFactory
1313
{
14-
public function __invoke(ContainerInterface $container): MetadataInterface
14+
public function __invoke(ContainerInterface $container): MetadataInterface&Metadata\Source
1515
{
1616
$adapterInterface = $container->get(AdapterInterface::class);
17-
return new MysqlMetadata($adapterInterface);
17+
return new Metadata\Source($adapterInterface);
1818
}
1919
}

src/Container/MysqlMetadataFactory.php

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/Container/PdoConnectionFactory.php

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Mysql\Container;
6+
7+
use PhpDb\Adapter\Driver\PdoConnectionInterface;
8+
use PhpDb\Mysql\Pdo\Connection;
9+
use Psr\Container\ContainerInterface;
10+
11+
final class PdoConnectionInterfaceFactory
12+
{
13+
public function __invoke(ContainerInterface $container): PdoConnectionInterface&Connection
14+
{
15+
/** @var array $config */
16+
$config = $container->get('config');
17+
18+
/** @var array $dbConfig */
19+
$dbConfig = $config['db'] ?? [];
20+
21+
/** @var array $connectionConfig */
22+
$connectionConfig = $dbConfig['connection'] ?? [];
23+
24+
return new Connection($connectionConfig);
25+
}
26+
}

src/Container/PdoDriverFactory.php renamed to src/Container/PdoDriverInterfaceFactory.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

7-
use PhpDb\Adapter\Driver\ConnectionInterface;
7+
use PhpDb\Adapter\Driver\PdoConnectionInterface;
88
use PhpDb\Adapter\Driver\Pdo\Result;
99
use PhpDb\Adapter\Driver\Pdo\Statement;
1010
use PhpDb\Adapter\Driver\PdoDriverInterface;
1111
use PhpDb\Adapter\Driver\ResultInterface;
1212
use PhpDb\Adapter\Driver\StatementInterface;
13-
use PhpDb\Adapter\Mysql\Driver\Pdo\Connection;
14-
use PhpDb\Adapter\Mysql\Driver\Pdo\Pdo as PdoDriver;
13+
use PhpDb\Mysql\Pdo\Connection;
14+
use PhpDb\Mysql\Pdo\Driver;
1515
use Psr\Container\ContainerInterface;
1616

17-
final class PdoDriverFactory
17+
final class PdoDriverInterfaceFactory
1818
{
19-
public function __invoke(ContainerInterface $container): PdoDriverInterface&PdoDriver
19+
public function __invoke(ContainerInterface $container): PdoDriverInterface&Driver
2020
{
21-
/** @var ConnectionInterface&Connection $connectionInstance */
21+
/** @var PdoConnectionInterface&Connection $connectionInstance */
2222
$connectionInstance = $container->get(Connection::class);
2323

2424
/** @var StatementInterface&Statement $statementInstance */
2525
$statementInstance = $container->get(Statement::class);
2626

2727
/** @var ResultInterface&Result $resultInstance */
2828
$resultInstance = $container->get(Result::class);
29-
return new PdoDriver(
29+
return new Driver(
3030
$connectionInstance,
3131
$statementInstance,
3232
$resultInstance

src/Container/PdoStatementFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

77
use PhpDb\Adapter\Driver\Pdo\Statement;
88
use PhpDb\Adapter\Driver\StatementInterface;

src/Container/PlatformInterfaceFactory.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpDb\Adapter\Mysql\Container;
5+
namespace PhpDb\Mysql\Container;
66

77
use mysqli;
88
use PDO;
99
use PhpDb\Adapter\Driver\DriverInterface;
10-
use PhpDb\Adapter\Mysql\Platform\Mysql;
1110
use PhpDb\Adapter\Platform\PlatformInterface;
11+
use PhpDb\Mysql\AdapterPlatform;
1212
use Psr\Container\ContainerInterface;
1313

1414
final class PlatformInterfaceFactory
1515
{
16-
public function __invoke(ContainerInterface $container): PlatformInterface&Mysql
16+
public function __invoke(ContainerInterface $container): PlatformInterface&AdapterPlatform
1717
{
1818
/** @var array $config */
1919
$config = $container->get('config');
@@ -27,11 +27,6 @@ public function __invoke(ContainerInterface $container): PlatformInterface&Mysql
2727
/** @var DriverInterface|mysqli|PDO $driverInstance */
2828
$driverInstance = $container->get($driver);
2929

30-
return new Mysql($driverInstance);
31-
}
32-
33-
public static function fromDriver(DriverInterface $driverInstance): PlatformInterface&Mysql
34-
{
35-
return new Mysql($driverInstance);
30+
return new AdapterPlatform($driverInstance);
3631
}
3732
}

0 commit comments

Comments
 (0)