diff --git a/composer.lock b/composer.lock index 4b5224b..f59efaf 100644 --- a/composer.lock +++ b/composer.lock @@ -259,20 +259,20 @@ }, { "name": "php-db/phpdb", - "version": "0.3.x-dev", + "version": "0.3.0", "source": { "type": "git", "url": "https://github.com/php-db/phpdb.git", - "reference": "82ccbd942248e55b02d2467939bf6ce6f065a156" + "reference": "c780605bf858ce43185f25869169df3f0fedc92c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-db/phpdb/zipball/82ccbd942248e55b02d2467939bf6ce6f065a156", - "reference": "82ccbd942248e55b02d2467939bf6ce6f065a156", + "url": "https://api.github.com/repos/php-db/phpdb/zipball/c780605bf858ce43185f25869169df3f0fedc92c", + "reference": "c780605bf858ce43185f25869169df3f0fedc92c", "shasum": "" }, "require": { - "laminas/laminas-servicemanager": "^4.0.0", + "laminas/laminas-servicemanager": "^3.0.0 || ^4.0.0", "laminas/laminas-stdlib": "^3.20.0", "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, @@ -283,6 +283,7 @@ "require-dev": { "laminas/laminas-coding-standard": "^3.0.1", "laminas/laminas-eventmanager": "^3.14.0", + "laminas/laminas-hydrator": "^4.6.0", "phpstan/phpstan": "^2.1", "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^11.5.15", @@ -292,7 +293,6 @@ "laminas/laminas-eventmanager": "Laminas\\EventManager component", "laminas/laminas-hydrator": "(^5.0.0) Laminas\\Hydrator component for using HydratingResultSets" }, - "default-branch": true, "type": "library", "extra": { "laminas": { @@ -322,7 +322,7 @@ "issues": "https://github.com/php-db/phpdb/issues", "source": "https://github.com/php-db/phpdb" }, - "time": "2025-11-09T08:06:35+00:00" + "time": "2025-11-26T04:22:01+00:00" }, { "name": "psr/container", @@ -439,29 +439,29 @@ "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.1.2", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1" + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", - "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", "shasum": "" }, "require": { "composer-plugin-api": "^2.2", "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", "php-parallel-lint/php-parallel-lint": "^1.4.0", - "phpcompatibility/php-compatibility": "^9.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", @@ -531,7 +531,7 @@ "type": "thanks_dev" } ], - "time": "2025-07-17T20:45:56+00:00" + "time": "2025-11-11T04:32:07+00:00" }, { "name": "laminas/laminas-coding-standard", @@ -813,11 +813,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.31", + "version": "2.1.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ead89849d879fe203ce9292c6ef5e7e76f867b96", - "reference": "ead89849d879fe203ce9292c6ef5e7e76f867b96", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227", + "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227", "shasum": "" }, "require": { @@ -862,25 +862,25 @@ "type": "github" } ], - "time": "2025-10-10T14:14:11+00:00" + "time": "2025-11-11T15:18:17+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "2.0.7", + "version": "2.0.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "9a9b161baee88a5f5c58d816943cff354ff233dc" + "reference": "2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/9a9b161baee88a5f5c58d816943cff354ff233dc", - "reference": "9a9b161baee88a5f5c58d816943cff354ff233dc", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe", + "reference": "2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe", "shasum": "" }, "require": { "php": "^7.4 || ^8.0", - "phpstan/phpstan": "^2.1.18" + "phpstan/phpstan": "^2.1.32" }, "conflict": { "phpunit/phpunit": "<7.0" @@ -913,9 +913,9 @@ "description": "PHPUnit extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.7" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.8" }, - "time": "2025-07-13T11:31:46+00:00" + "time": "2025-11-11T07:55:22+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1254,16 +1254,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.43", + "version": "11.5.44", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924" + "reference": "c346885c95423eda3f65d85a194aaa24873cda82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924", - "reference": "c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c346885c95423eda3f65d85a194aaa24873cda82", + "reference": "c346885c95423eda3f65d85a194aaa24873cda82", "shasum": "" }, "require": { @@ -1335,7 +1335,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.43" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.44" }, "funding": [ { @@ -1359,7 +1359,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T08:39:39+00:00" + "time": "2025-11-13T07:17:35+00:00" }, { "name": "sebastian/cli-parser", @@ -2545,16 +2545,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -2583,7 +2583,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -2591,7 +2591,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "webimpress/coding-standard", @@ -2664,5 +2664,5 @@ "platform-overrides": { "php": "8.2.99" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index aa4eea9..4fd25e4 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -6,12 +6,6 @@ parameters: count: 1 path: src/Container/DriverInterfaceFactoryFactory.php - - - message: '#^Cannot call static method createFromConfig\(\) on callable\.$#' - identifier: staticMethod.nonObject - count: 1 - path: src/Container/PdoDriverFactory.php - - message: '#^Parameter \#1 \$name \(string\) of method PhpDb\\Adapter\\Sqlite\\Driver\\Pdo\\Connection\:\:getLastGeneratedValue\(\) should be compatible with parameter \$name \(null\) of method PhpDb\\Adapter\\Driver\\ConnectionInterface\:\:getLastGeneratedValue\(\)$#' identifier: method.childParameterType diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index c9daf30..fd64fd0 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -18,7 +18,6 @@ use PhpDb\Adapter\Profiler\Profiler; use PhpDb\Adapter\Profiler\ProfilerInterface; use PhpDb\Container\AdapterAbstractServiceFactory; -use PhpDb\Container\AdapterManager; use PhpDb\Container\ConnectionInterfaceFactoryFactoryInterface; use PhpDb\Container\DriverInterfaceFactoryFactoryInterface; use PhpDb\Container\PlatformInterfaceFactoryFactoryInterface; @@ -30,8 +29,7 @@ final class ConfigProvider public function __invoke(): array { return [ - 'dependencies' => $this->getDependencies(), - AdapterManager::class => $this->getAdapterManagerConfig(), + 'dependencies' => $this->getDependencies(), ]; } @@ -42,23 +40,6 @@ public function getDependencies(): array AdapterAbstractServiceFactory::class, ], 'aliases' => [ - MetadataInterface::class => Metadata\Source\SqliteMetadata::class, - ], - 'factories' => [ - Metadata\Source\SqliteMetadata::class => Container\MetadataInterfaceFactory::class, - ], - 'delegators' => [ - AdapterManager::class => [ - Container\AdapterManagerDelegator::class, - ], - ], - ]; - } - - public function getAdapterManagerConfig(): array - { - return [ - 'aliases' => [ 'SQLite' => Driver\Pdo\Pdo::class, 'Sqlite' => Driver\Pdo\Pdo::class, 'sqlite' => Driver\Pdo\Pdo::class, @@ -78,18 +59,20 @@ public function getAdapterManagerConfig(): array ConnectionInterfaceFactoryFactoryInterface::class => Container\ConnectionInterfaceFactoryFactory::class, DriverInterfaceFactoryFactoryInterface::class => Container\DriverInterfaceFactoryFactory::class, PlatformInterfaceFactoryFactoryInterface::class => Container\PlatformInterfaceFactoryFactory::class, + MetadataInterface::class => Metadata\Source\SqliteMetadata::class, ], - 'factories' => [ - AdapterInterface::class => Container\AdapterFactory::class, - Driver\Pdo\Connection::class => Container\PdoConnectionFactory::class, - Driver\Pdo\Pdo::class => Container\PdoDriverFactory::class, - Result::class => Container\PdoResultFactory::class, - Statement::class => Container\PdoStatementFactory::class, - Platform\Sqlite::class => Container\PlatformInterfaceFactory::class, - Profiler::class => InvokableFactory::class, - ResultSet\ResultSet::class => InvokableFactory::class, + 'factories' => [ + AdapterInterface::class => Container\AdapterFactory::class, + Driver\Pdo\Connection::class => Container\PdoConnectionFactory::class, + Driver\Pdo\Pdo::class => Container\PdoDriverFactory::class, + Result::class => Container\PdoResultFactory::class, + Statement::class => Container\PdoStatementFactory::class, + Platform\Sqlite::class => Container\PlatformInterfaceFactory::class, + Profiler::class => InvokableFactory::class, + ResultSet\ResultSet::class => InvokableFactory::class, + Metadata\Source\SqliteMetadata::class => Container\MetadataInterfaceFactory::class, ], - 'invokables' => [ + 'invokables' => [ Container\ConnectionInterfaceFactoryFactory::class => Container\ConnectionInterfaceFactoryFactory::class, Container\DriverInterfaceFactoryFactory::class diff --git a/src/Container/AdapterFactory.php b/src/Container/AdapterFactory.php index b396be9..42b022a 100644 --- a/src/Container/AdapterFactory.php +++ b/src/Container/AdapterFactory.php @@ -12,7 +12,6 @@ use PhpDb\Adapter\Exception\RuntimeException; use PhpDb\Adapter\Platform\PlatformInterface; use PhpDb\Adapter\Profiler\ProfilerInterface; -use PhpDb\Container\AdapterManager; use PhpDb\ResultSet\ResultSetInterface; use Psr\Container\ContainerInterface; @@ -22,9 +21,6 @@ final class AdapterFactory { public function __invoke(ContainerInterface $container): AdapterInterface { - /** @var AdapterManager $adapterManager */ - $adapterManager = $container->get(AdapterManager::class); - /** @var array $config */ $config = $container->get('config'); @@ -38,7 +34,7 @@ public function __invoke(ContainerInterface $container): AdapterInterface /** @var string $driver */ $driver = $dbConfig['driver']; - if (! $adapterManager->has($driver)) { + if (! $container->has($driver)) { throw new ServiceNotFoundException(sprintf( 'Database driver "%s" is not registered in the adapter manager.', $driver @@ -46,9 +42,9 @@ public function __invoke(ContainerInterface $container): AdapterInterface } /** @var DriverInterface|PdoDriverInterface $driverInstance */ - $driverInstance = $adapterManager->get($driver); + $driverInstance = $container->get($driver); - if (! $adapterManager->has(PlatformInterface::class)) { + if (! $container->has(PlatformInterface::class)) { throw new ServiceNotFoundException(sprintf( 'Database platform "%s" is not registered in the adapter manager.', PlatformInterface::class @@ -56,9 +52,9 @@ public function __invoke(ContainerInterface $container): AdapterInterface } /** @var PlatformInterface $platformInstance */ - $platformInstance = $adapterManager->get(PlatformInterface::class); + $platformInstance = $container->get(PlatformInterface::class); - if (! $adapterManager->has(ResultSetInterface::class)) { + if (! $container->has(ResultSetInterface::class)) { throw new ServiceNotFoundException(sprintf( 'ResultSet "%s" is not registered in the adapter manager.', ResultSetInterface::class @@ -66,11 +62,11 @@ public function __invoke(ContainerInterface $container): AdapterInterface } /** @var ResultSetInterface $resultSetInstance */ - $resultSetInstance = $adapterManager->get(ResultSetInterface::class); + $resultSetInstance = $container->get(ResultSetInterface::class); /** @var ProfilerInterface|null $profilerInstanceOrNull */ - $profilerInstanceOrNull = $adapterManager->has(ProfilerInterface::class) - ? $adapterManager->get(ProfilerInterface::class) + $profilerInstanceOrNull = $container->has(ProfilerInterface::class) + ? $container->get(ProfilerInterface::class) : null; return new Adapter( diff --git a/src/Container/AdapterManagerDelegator.php b/src/Container/AdapterManagerDelegator.php deleted file mode 100644 index 553aa4a..0000000 --- a/src/Container/AdapterManagerDelegator.php +++ /dev/null @@ -1,28 +0,0 @@ -configure( - (new ConfigProvider())->getAdapterManagerConfig() - ); - - return $adapterManager; - } -} diff --git a/src/Container/ConnectionInterfaceFactoryFactory.php b/src/Container/ConnectionInterfaceFactoryFactory.php index 25907e4..814ba51 100644 --- a/src/Container/ConnectionInterfaceFactoryFactory.php +++ b/src/Container/ConnectionInterfaceFactoryFactory.php @@ -5,7 +5,6 @@ namespace PhpDb\Adapter\Sqlite\Container; use PhpDb\Adapter\Sqlite\Driver\Pdo\Pdo; -use PhpDb\Container\AdapterManager; use PhpDb\Container\ConnectionInterfaceFactoryFactoryInterface as FactoryFactoryInterface; use Psr\Container\ContainerInterface; use RuntimeException; @@ -26,7 +25,7 @@ public function __invoke( $requestedName )); } - $adapterServices = $container->get('config')[AdapterManager::class]; + $adapterServices = $container->get('config')['dependencies']; $configuredDriver = $adapterConfig[$requestedName]['driver']; if (array_key_exists($configuredDriver, $adapterServices['aliases'])) { $aliasTo = $adapterServices['aliases'][$configuredDriver]; diff --git a/src/Container/DriverInterfaceFactoryFactory.php b/src/Container/DriverInterfaceFactoryFactory.php index 60280e3..e7219dc 100644 --- a/src/Container/DriverInterfaceFactoryFactory.php +++ b/src/Container/DriverInterfaceFactoryFactory.php @@ -4,7 +4,6 @@ namespace PhpDb\Adapter\Sqlite\Container; -use PhpDb\Container\AdapterManager; use PhpDb\Container\DriverInterfaceFactoryFactoryInterface as FactoryFactoryInterface; use Psr\Container\ContainerInterface; use RuntimeException; @@ -24,7 +23,7 @@ public function __invoke( $requestedName )); } - $adapterServices = $container->get('config')[AdapterManager::class]; + $adapterServices = $container->get('config')['dependencies']; $configuredDriver = $adapterConfig[$requestedName]['driver']; $aliasTo ??= $adapterServices['aliases'][$configuredDriver] ?? $configuredDriver; diff --git a/src/Container/PdoDriverFactory.php b/src/Container/PdoDriverFactory.php index f51e23e..dcc8378 100644 --- a/src/Container/PdoDriverFactory.php +++ b/src/Container/PdoDriverFactory.php @@ -13,24 +13,20 @@ use PhpDb\Adapter\Sqlite\Driver\Pdo\Connection; use PhpDb\Adapter\Sqlite\Driver\Pdo\Feature\SqliteRowCounter; use PhpDb\Adapter\Sqlite\Driver\Pdo\Pdo as PdoDriver; -use PhpDb\Container\AdapterManager; use Psr\Container\ContainerInterface; final class PdoDriverFactory { public function __invoke(ContainerInterface $container): PdoDriverInterface&PdoDriver { - /** @var AdapterManager $adapterManager */ - $adapterManager = $container->get(AdapterManager::class); - /** @var ConnectionInterface&Connection $connectionInstance */ - $connectionInstance = $adapterManager->get(Connection::class); + $connectionInstance = $container->get(Connection::class); /** @var StatementInterface&Statement $statementInstance */ - $statementInstance = $adapterManager->get(Statement::class); + $statementInstance = $container->get(Statement::class); /** @var ResultInterface&Result $resultInstance */ - $resultInstance = $adapterManager->get(Result::class); + $resultInstance = $container->get(Result::class); return new PdoDriver( $connectionInstance, @@ -44,20 +40,18 @@ public static function createFromConfig( ContainerInterface $container, string $requestedName, ): PdoDriverInterface&PdoDriver { - /** @var AdapterManager $adapterManager */ - $adapterManager = $container->get(AdapterManager::class); $connectionFactory = ( - $adapterManager->get(ConnectionInterfaceFactoryFactory::class) + $container->get(ConnectionInterfaceFactoryFactory::class) )($container, $requestedName); /** @var ConnectionInterface&Connection $connectionInstance */ $connectionInstance = $connectionFactory::createFromConfig($container, $requestedName); /** @var StatementInterface&Statement $statementInstance */ - $statementInstance = $adapterManager->get(Statement::class); + $statementInstance = $container->get(Statement::class); /** @var ResultInterface&Result $resultInstance */ - $resultInstance = $adapterManager->get(Result::class); + $resultInstance = $container->get(Result::class); return new PdoDriver( $connectionInstance, diff --git a/src/Container/PlatformInterfaceFactory.php b/src/Container/PlatformInterfaceFactory.php index c42b83c..4282633 100644 --- a/src/Container/PlatformInterfaceFactory.php +++ b/src/Container/PlatformInterfaceFactory.php @@ -8,16 +8,12 @@ use PhpDb\Adapter\Driver\PdoDriverInterface; use PhpDb\Adapter\Platform\PlatformInterface; use PhpDb\Adapter\Sqlite\Platform\Sqlite; -use PhpDb\Container\AdapterManager; use Psr\Container\ContainerInterface; final class PlatformInterfaceFactory { public function __invoke(ContainerInterface $container): PlatformInterface&Sqlite { - /** @var AdapterManager $adapterManager */ - $adapterManager = $container->get(AdapterManager::class); - /** @var array $config */ $config = $container->get('config'); @@ -28,7 +24,7 @@ public function __invoke(ContainerInterface $container): PlatformInterface&Sqlit $driver = $dbConfig['driver']; /** @var PdoDriverInterface|PDO $driverInstance */ - $driverInstance = $adapterManager->get($driver); + $driverInstance = $container->get($driver); return new Sqlite($driverInstance); } diff --git a/test/integration/Container/TestAsset/SetupTrait.php b/test/integration/Container/TestAsset/SetupTrait.php index dfcd9c2..bd87ab5 100644 --- a/test/integration/Container/TestAsset/SetupTrait.php +++ b/test/integration/Container/TestAsset/SetupTrait.php @@ -12,7 +12,6 @@ use PhpDb\Adapter\Sqlite\ConfigProvider; use PhpDb\Adapter\Sqlite\Driver\Pdo\Pdo; use PhpDb\ConfigProvider as LaminasDbConfigProvider; -use PhpDb\Container\AdapterManager; use PHPUnit\Framework\Attributes\RequiresPhpExtension; use Psr\Container\ContainerInterface; @@ -31,8 +30,6 @@ trait SetupTrait protected ?AdapterInterface $adapter; - protected AdapterManager $adapterManager; - protected ContainerInterface $container; protected DriverInterface|string|null $driver; @@ -85,10 +82,9 @@ protected function getAdapter(array $config = []): AdapterInterface ] ); - $this->config = $serviceManagerConfig; - $this->container = new ServiceManager($this->config); - $this->adapterManager = $this->container->get(AdapterManager::class); - $this->adapter = $this->adapterManager->get(AdapterInterface::class); + $this->config = $serviceManagerConfig; + $this->container = new ServiceManager($this->config); + $this->adapter = $this->container->get(AdapterInterface::class); return $this->adapter; } diff --git a/test/unit/ConfigProviderTest.php b/test/unit/ConfigProviderTest.php index 0af2103..b91adc6 100644 --- a/test/unit/ConfigProviderTest.php +++ b/test/unit/ConfigProviderTest.php @@ -24,7 +24,6 @@ use PhpDb\Adapter\Sqlite\Metadata\Source\SqliteMetadata; use PhpDb\Adapter\Sqlite\Platform\Sqlite; use PhpDb\Container\AdapterAbstractServiceFactory; -use PhpDb\Container\AdapterManager; use PhpDb\Container\ConnectionInterfaceFactoryFactoryInterface; use PhpDb\Container\DriverInterfaceFactoryFactoryInterface; use PhpDb\Container\PlatformInterfaceFactoryFactoryInterface; @@ -49,7 +48,6 @@ public function testInvokeReturnsExpectedStructure(): void self::assertIsArray($config); self::assertArrayHasKey('dependencies', $config); - self::assertArrayHasKey(AdapterManager::class, $config); } public function testGetDependenciesReturnsCorrectStructure(): void @@ -60,7 +58,7 @@ public function testGetDependenciesReturnsCorrectStructure(): void self::assertArrayHasKey('abstract_factories', $dependencies); self::assertArrayHasKey('aliases', $dependencies); self::assertArrayHasKey('factories', $dependencies); - self::assertArrayHasKey('delegators', $dependencies); + self::assertArrayHasKey('invokables', $dependencies); } public function testGetDependenciesContainsAbstractFactories(): void @@ -95,20 +93,9 @@ public function testGetDependenciesContainsMetadataFactory(): void ); } - public function testGetDependenciesContainsDelegators(): void + public function testConfigReturnsCorrectStructure(): void { - $dependencies = $this->configProvider->getDependencies(); - - self::assertArrayHasKey(AdapterManager::class, $dependencies['delegators']); - self::assertContains( - Container\AdapterManagerDelegator::class, - $dependencies['delegators'][AdapterManager::class] - ); - } - - public function testGetAdapterManagerConfigReturnsCorrectStructure(): void - { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); self::assertIsArray($config); self::assertArrayHasKey('aliases', $config); @@ -116,9 +103,9 @@ public function testGetAdapterManagerConfigReturnsCorrectStructure(): void self::assertArrayHasKey('invokables', $config); } - public function testGetAdapterManagerConfigContainsDriverAliases(): void + public function testGetDependenciesContainsDriverAliases(): void { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); $expectedAliases = [ 'SQLite' => Pdo::class, @@ -136,9 +123,9 @@ public function testGetAdapterManagerConfigContainsDriverAliases(): void } } - public function testGetAdapterManagerConfigContainsInterfaceAliases(): void + public function testGetDependenciesContainsInterfaceAliases(): void { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); $expectedAliases = [ ConnectionInterface::class => Connection::class, @@ -158,9 +145,9 @@ public function testGetAdapterManagerConfigContainsInterfaceAliases(): void } } - public function testGetAdapterManagerConfigContainsFactoryFactoryAliases(): void + public function testConfigContainsFactoryFactoryAliases(): void { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); $expectedAliases = [ ConnectionInterfaceFactoryFactoryInterface::class => Container\ConnectionInterfaceFactoryFactory::class, @@ -174,9 +161,9 @@ public function testGetAdapterManagerConfigContainsFactoryFactoryAliases(): void } } - public function testGetAdapterManagerConfigContainsFactories(): void + public function testConfigContainsFactories(): void { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); $expectedFactories = [ AdapterInterface::class => Container\AdapterFactory::class, @@ -195,9 +182,9 @@ public function testGetAdapterManagerConfigContainsFactories(): void } } - public function testGetAdapterManagerConfigContainsInvokables(): void + public function testConfigContainsInvokables(): void { - $config = $this->configProvider->getAdapterManagerConfig(); + $config = $this->configProvider->getDependencies(); $expectedInvokables = [ Container\ConnectionInterfaceFactoryFactory::class, diff --git a/test/unit/Container/ConnectionInterfaceFactoryFactoryTest.php b/test/unit/Container/ConnectionInterfaceFactoryFactoryTest.php index d6cd4d6..a5a4783 100644 --- a/test/unit/Container/ConnectionInterfaceFactoryFactoryTest.php +++ b/test/unit/Container/ConnectionInterfaceFactoryFactoryTest.php @@ -7,7 +7,6 @@ use PhpDb\Adapter\Sqlite\Container\ConnectionInterfaceFactoryFactory; use PhpDb\Adapter\Sqlite\Container\PdoConnectionFactory; use PhpDb\Adapter\Sqlite\Driver\Pdo\Pdo; -use PhpDb\Container\AdapterManager; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Psr\Container\ContainerInterface; @@ -23,18 +22,18 @@ public function testInvokeReturnsCallable(): void [ 'config', [ - 'db' => [ + 'dependencies' => [ + 'aliases' => [ + 'sqlite' => Pdo::class, + ], + ], + 'db' => [ 'adapters' => [ 'test_adapter' => [ 'driver' => 'sqlite', ], ], ], - AdapterManager::class => [ - 'aliases' => [ - 'sqlite' => Pdo::class, - ], - ], ], ], ]); @@ -52,18 +51,18 @@ public function testInvokeReturnsPdoConnectionFactory(): void [ 'config', [ - 'db' => [ + 'dependencies' => [ + 'aliases' => [ + 'sqlite' => Pdo::class, + ], + ], + 'db' => [ 'adapters' => [ 'test_adapter' => [ 'driver' => 'sqlite', ], ], ], - AdapterManager::class => [ - 'aliases' => [ - 'sqlite' => Pdo::class, - ], - ], ], ], ]); @@ -105,16 +104,18 @@ public function testInvokeThrowsExceptionForUnknownDriver(): void [ 'config', [ - 'db' => [ + 'dependencies' => [ + 'aliases' => [ + 'sqlite' => Pdo::class, + ], + ], + 'db' => [ 'adapters' => [ 'test_adapter' => [ 'driver' => 'unknown', ], ], ], - AdapterManager::class => [ - 'aliases' => [], - ], ], ], ]); diff --git a/test/unit/Container/DriverInterfaceFactoryFactoryTest.php b/test/unit/Container/DriverInterfaceFactoryFactoryTest.php index efbfe5e..9a04f33 100644 --- a/test/unit/Container/DriverInterfaceFactoryFactoryTest.php +++ b/test/unit/Container/DriverInterfaceFactoryFactoryTest.php @@ -7,7 +7,6 @@ use PhpDb\Adapter\Sqlite\Container\DriverInterfaceFactoryFactory; use PhpDb\Adapter\Sqlite\Container\PdoDriverFactory; use PhpDb\Adapter\Sqlite\Driver\Pdo\Pdo; -use PhpDb\Container\AdapterManager; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Psr\Container\ContainerInterface; @@ -23,14 +22,7 @@ public function testInvokeReturnsCallable(): void [ 'config', [ - 'db' => [ - 'adapters' => [ - 'test_adapter' => [ - 'driver' => 'sqlite', - ], - ], - ], - AdapterManager::class => [ + 'dependencies' => [ 'aliases' => [ 'sqlite' => Pdo::class, ], @@ -38,6 +30,13 @@ public function testInvokeReturnsCallable(): void Pdo::class => PdoDriverFactory::class, ], ], + 'db' => [ + 'adapters' => [ + 'test_adapter' => [ + 'driver' => 'sqlite', + ], + ], + ], ], ], ]); @@ -55,14 +54,7 @@ public function testInvokeReturnsPdoDriverFactory(): void [ 'config', [ - 'db' => [ - 'adapters' => [ - 'test_adapter' => [ - 'driver' => 'sqlite', - ], - ], - ], - AdapterManager::class => [ + 'dependencies' => [ 'aliases' => [ 'sqlite' => Pdo::class, ], @@ -70,6 +62,13 @@ public function testInvokeReturnsPdoDriverFactory(): void Pdo::class => PdoDriverFactory::class, ], ], + 'db' => [ + 'adapters' => [ + 'test_adapter' => [ + 'driver' => 'sqlite', + ], + ], + ], ], ], ]); @@ -111,19 +110,21 @@ public function testInvokeWithDriverNotInAliases(): void [ 'config', [ - 'db' => [ + 'dependencies' => [ + 'aliases' => [ + 'sqlite' => Pdo::class, + ], + 'factories' => [ + Pdo::class => PdoDriverFactory::class, + ], + ], + 'db' => [ 'adapters' => [ 'test_adapter' => [ 'driver' => Pdo::class, ], ], ], - AdapterManager::class => [ - 'aliases' => [], - 'factories' => [ - Pdo::class => PdoDriverFactory::class, - ], - ], ], ], ]);