Debug配置
Debug仅在当前Application实例的生命周期中存在。 输出各种调试信息
在profile.php中开启
$profile['debug']['enabled'] = true; // 是否开启调试模式: bool FALSE 不开启 | bool TRUE 开启
$profile['timezone'] = 'PRC'; // 设置时区
$profile['charset'] = 'utf-8'; // 设置编码
#debug
$profile['debug']['event_listener'] = \Tiny\MVC\Event\DebugEventListener::class; // 通过注册监听事件 可通过此节点自定义新的debug插件
$profile['debug']['param_name'] = 'debug'; // 命令行下 通过--debug开启
$profile['debug']['cache']['enabled'] = true; // 是否在debug模式下启用应用缓存
$profile['debug']['console'] = false; // web环境下 debug信息是否通过javascript的console.log输出在console
通过调用application实例开启/关闭
// 全局调用
Tiny::currentApplication()->setDebug(true|false);
// 自动注解
/**
* @autowired
*/
protected Properties $properties
// 参数注入
public function indexAction(ApplicationBase $app)
{
$app->setdebug(true|false);
}
//控制器中
public function indexAction()
{
$this->setDebug(true|false);
}
Debug的实现方式: 通过实现EventListener接口实现
通过触发 MvcEvent的onEndRequest()事件 开始处理调试数据,并注入到$app->response应用响应实例中去;
// 在application.__construct中注册事件
$app = Tiny::currentApplication();
$debugEvenentListener = Tiny\MVC\Event\DebugEventListener::class;
$app->eventManager->addListener($debugEvenentListener);
// 触发 MvcEvent的onEndRequest()事件
$debugContent = ...;
$this->app->response->appendBody($debugContent);
具体参考库
Tiny\MVC\Event\DebugEventListener