use Dice\Dice;
use Friendica\App;
+use Friendica\Core\Cache;
use Friendica\Core\Config;
+use Friendica\Core\L10n\L10n;
+use Friendica\Core\Lock\ILock;
use Friendica\Database\Database;
use Friendica\Factory;
use Friendica\Util;
*
*/
return [
- '$basepath' => [
- 'instanceOf' => Util\BasePath::class,
- 'call' => [
+ '*' => [
+ // marks all class result as shared for other creations, so there's just
+ // one instance for the whole execution
+ 'shared' => true,
+ ],
+ '$basepath' => [
+ 'instanceOf' => Util\BasePath::class,
+ 'call' => [
['getPath', [], Dice::CHAIN_CALL],
],
'constructParams' => [
$_SERVER
]
],
- Util\BasePath::class => [
- 'shared' => true,
+ Util\BasePath::class => [
'constructParams' => [
dirname(__FILE__, 2),
$_SERVER
]
],
- Util\ConfigFileLoader::class => [
- 'shared' => true,
+ Util\ConfigFileLoader::class => [
+ 'shared' => true,
'constructParams' => [
[Dice::INSTANCE => '$basepath'],
],
'call' => [
['createCache', [], Dice::CHAIN_CALL],
],
- 'shared' => true,
],
- App\Mode::class => [
- 'call' => [
+ App\Mode::class => [
+ 'call' => [
+ ['determineRunMode', [true, $_SERVER], Dice::CHAIN_CALL],
['determine', [], Dice::CHAIN_CALL],
],
- // marks the result as shared for other creations, so there's just
- // one instance for the whole execution
- 'shared' => true,
],
- Config\Configuration::class => [
- 'shared' => true,
+ Config\Configuration::class => [
'instanceOf' => Factory\ConfigFactory::class,
- 'call' => [
+ 'call' => [
['createConfig', [], Dice::CHAIN_CALL],
],
],
- Config\PConfiguration::class => [
- 'shared' => true,
+ Config\PConfiguration::class => [
'instanceOf' => Factory\ConfigFactory::class,
- 'call' => [
+ 'call' => [
['createPConfig', [], Dice::CHAIN_CALL],
]
],
- Database::class => [
- 'shared' => true,
+ Database::class => [
'constructParams' => [
[DICE::INSTANCE => \Psr\Log\NullLogger::class],
$_SERVER,
],
],
/**
- * Creates the Util\BaseURL
+ * Creates the App\BaseURL
*
* Same as:
- * $baseURL = new Util\BaseURL($configuration, $_SERVER);
+ * $baseURL = new App\BaseURL($configuration, $_SERVER);
*/
- Util\BaseURL::class => [
- 'shared' => true,
+ App\BaseURL::class => [
'constructParams' => [
$_SERVER,
],
],
+ App\Page::class => [
+ 'constructParams' => [
+ [Dice::INSTANCE => '$basepath'],
+ ],
+ ],
/**
* Create a Logger, which implements the LoggerInterface
*
* $app = $dice->create(App::class, [], ['$channel' => 'index']);
* and is automatically passed as an argument with the same name
*/
- LoggerInterface::class => [
- 'shared' => true,
+ LoggerInterface::class => [
'instanceOf' => Factory\LoggerFactory::class,
+ 'constructParams' => [
+ 'index',
+ ],
'call' => [
- ['create', [], Dice::CHAIN_CALL],
+ ['create', ['index'], Dice::CHAIN_CALL],
],
],
- '$devLogger' => [
- 'shared' => true,
+ '$devLogger' => [
'instanceOf' => Factory\LoggerFactory::class,
+ 'constructParams' => [
+ 'dev',
+ ],
'call' => [
['createDev', [], Dice::CHAIN_CALL],
]
- ]
+ ],
+ Cache\ICache::class => [
+ 'instanceOf' => Factory\CacheFactory::class,
+ 'call' => [
+ ['create', [], Dice::CHAIN_CALL],
+ ],
+ ],
+ Cache\IMemoryCache::class => [
+ 'instanceOf' => Factory\CacheFactory::class,
+ 'call' => [
+ ['create', [], Dice::CHAIN_CALL],
+ ],
+ ],
+ ILock::class => [
+ 'instanceOf' => Factory\LockFactory::class,
+ 'call' => [
+ ['create', [], Dice::CHAIN_CALL],
+ ],
+ ],
+ App\Arguments::class => [
+ 'instanceOf' => App\Arguments::class,
+ 'call' => [
+ ['determine', [$_SERVER, $_GET], Dice::CHAIN_CALL],
+ ],
+ ],
+ App\Module::class => [
+ 'instanceOf' => App\Module::class,
+ 'call' => [
+ ['determineModule', [], Dice::CHAIN_CALL],
+ ],
+ ],
+ Friendica\Core\Process::class => [
+ 'constructParams' => [
+ [Dice::INSTANCE => '$basepath'],
+ ],
+ ],
+ App\Router::class => [
+ 'constructParams' => [
+ $_SERVER, null
+ ],
+ 'call' => [
+ ['addRoutes', [include __DIR__ . '/routes.config.php'], Dice::CHAIN_CALL],
+ ],
+ ],
+ L10n::class => [
+ 'constructParams' => [
+ $_SERVER, $_GET
+ ],
+ ],
];