我的 Slim 3 应用程序的索引结构如下:
// Instantiate the app
$config = require __DIR__ . '/../src/config.php';
$app = new \Slim\App($config);
// Set up dependencies
require __DIR__ . '/../src/dependencies.php';
// Register middleware
require __DIR__ . '/../src/middleware.php';
// Register routes
require __DIR__ . '/../src/routes.php';
// Run app
$app->run();
我有一个单独的worker.php文件,通过bash脚本执行,并且该文件在后台中不停地运行(监听某些事件)。
我如何向我的worker.php文件中注入服务,这些服务不属于Slim应用程序或dependencies.php中的$container,例如我想使用Monolog记录器。 dependencies:
$container = $app->getContainer();
/**@var \App\model\Model access to Model methods */
$model = new \App\model\Loan($app->getContainer()->get('settings')['db']);
$container['logger'] = function ($c) {
$settings = $c->get('settings')['logger'];
$logger = new Monolog\Logger($settings['name']);
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
$logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], Monolog\Logger::DEBUG));
return $logger;
};