
Michal Kowalik - 2016-03-14 17:09:56
Is this scenario somehow possible:
=== SomeClassInterface.php
interface SomeClassInterface { }
=== SomeClassConcrete.php
/**
* Used in production
*/
class SomeClassConcrete implements SomeClassInterface { }
=== SomeClassConcreteDev.php
/**
* Used in dev and / or test
*/
class SomeClassConcreteDev implements SomeClassInterface { }
=== diconfig-prod.php
return [
SomeClassInterface::class => SomeClassConcrete::class
];
=== diconfig-test.php
return [
SomeClassInterface::class => SomeClassConcreteDev::class
];
=== diconfig-dev.php
return [
SomeClassInterface::class => SomeClassConcreteDev::class
];
=== example.php
AutoDi::configure('diconfig-' . ($_SERVER['THE_ENV'] ?? 'dev') . '.php');
$someObject = AutoDi::getInstance(SomeClassInterface::class);