Skip to content

Commit 60d6469

Browse files
Depend on interface instead of instantiation (#4978)
Co-authored-by: 李铭昕 <[email protected]>
1 parent bda3652 commit 60d6469

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

src/Container.php

+3
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ public function has($id): bool
146146
return true;
147147
}
148148

149+
/**
150+
* @deprecated
151+
*/
149152
public function getDefinitionSource(): Definition\DefinitionSourceInterface
150153
{
151154
return $this->definitionSource;

src/Definition/DefinitionSourceFactory.php

+4-12
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,21 @@
1616

1717
class DefinitionSourceFactory
1818
{
19-
protected string $baseUri;
20-
21-
public function __construct(protected bool $enableCache = false)
19+
public function __invoke(): DefinitionSource
2220
{
2321
if (! defined('BASE_PATH')) {
2422
throw new Exception('BASE_PATH is not defined.');
2523
}
2624

27-
$this->baseUri = BASE_PATH;
28-
}
29-
30-
public function __invoke()
31-
{
32-
$configDir = $this->baseUri . '/config';
33-
3425
$configFromProviders = [];
3526
if (class_exists(ProviderConfig::class)) {
3627
$configFromProviders = ProviderConfig::load();
3728
}
3829

3930
$serverDependencies = $configFromProviders['dependencies'] ?? [];
40-
if (file_exists($configDir . '/autoload/dependencies.php')) {
41-
$definitions = include $configDir . '/autoload/dependencies.php';
31+
$dependenciesPath = BASE_PATH . '/config/autoload/dependencies.php';
32+
if (file_exists($dependenciesPath)) {
33+
$definitions = include $dependenciesPath;
4234
$serverDependencies = array_replace($serverDependencies, $definitions ?? []);
4335
}
4436

tests/DefinitionSourceTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class DefinitionSourceTest extends TestCase
2626
public function testAddDefinition()
2727
{
2828
$container = new Container(new DefinitionSource([]));
29-
$container->getDefinitionSource()->addDefinition('Foo', function () {
29+
$container->define('Foo', function () {
3030
return 'bar';
3131
});
3232
$this->assertEquals('bar', $container->get('Foo'));
@@ -35,7 +35,7 @@ public function testAddDefinition()
3535
public function testDefinitionFactory()
3636
{
3737
$container = new Container(new DefinitionSource([]));
38-
$container->getDefinitionSource()->addDefinition('Foo', FooFactory::class);
38+
$container->define('Foo', FooFactory::class);
3939

4040
$foo = $container->get('Foo');
4141
$this->assertInstanceOf(Foo::class, $foo);

0 commit comments

Comments
 (0)