我目前正在使用 FlightPHP 框架开发一个应用程序,并且想知道如何将 FlightPHP 注入到我的自定义类中,以便能够使用注入到它的依赖容器中的特定类。
use Flight;
use Logger;
class DB{
public function __construct(...){
$this->app = $app; // Flight:: instance
}
public function doStuff($stuff){
return $this->app->log()->function($stuff);
}
}
Flight::register('log', 'Logger', ['app'], function($log) {
return $log->pushHandler(new StreamHandler('app.log'));
});
Flight::register('database', 'DB', array($data), function($db) {
return $db;
});
我正在尝试将 Flight 注入到我的数据库类构造函数中,以便能够使用之前注入到 Flight 依赖容器中的 log 函数。
当在 Flight 实例“”下使用时,“Logger”在 index.php 中有效Flight::log()->function("test");
,但是当我尝试在另一个范围内(在 Database 类中)使用它时,它不允许我在“”的上下文中使用它航班”。
更新:
Flight::register('log', 'Monolog\Logger', ['app'], function($log) {
return $log->pushHandler(new StreamHandler('app.log'));
});
class DB{
function __construct(Monolog\Logger $engine){
#var_dump($engine);
$engine->addInfo("injected"); // works
}
}
Flight::register('database', 'DB', array(Flight::log()), function($db) {
return $db;
});
Flight::database();
使用正确吗?