我在Laravel 4中使用kint,首先在composer.json中加载Kint,这样dd()是由kint定义的,而不是laravel (建议的这里)。
我希望将调试调用留在我的应用程序中,如果不在本地环境中,则禁用Kint。我正在使用以下结构成功地为Anvard使用配置重写:
/app/config/local/packages/provider/package_name/overridefile.php
不幸的是,对于Kint来说,这并不适用于以下结构:
/app/config/packages/raveren/kint/local/config.php或/app/config/packages/raveren/kint/local/config.default.php
Kint文档指出:
您可以选择复制包含的config.default.php并将其重命名为config.php以覆盖默认值…。
…为我工作(/vendor/raveren/kint/config.php)
我如何做到这一点:
我还尝试将以下内容添加到一个helpers.php文件中,这个文件在/ 这里 /autooload.php中的composer之前调用。
<?php
isset( $GLOBALS['_kint_settings'] ) or $GLOBALS['_kint_settings'] = array();
$_kintSettings = &$GLOBALS['_kint_settings'];
/** @var bool if set to false, kint will become silent, same as Kint::enabled(false) or Kint::$enabled = false */
$_kintSettings['enabled'] = false;
unset( $_kintSettings );(但没有骰子:)
有什么建议吗?蒂娅!
发布于 2013-11-06 07:40:01
嗯..。我不确定这是否是理想的方法,但这是可行的,看起来拉拉维尔:
// top of app/start/global.php
Kint::enabled(false);和
// app/start/local.php
Kint::enabled(true);(假设您已经定义了一个本地环境:请参阅@TheAlpha的答案以获得更多信息)
http://laravel.com/docs/lifecycle#start-files
发布于 2013-11-02 07:09:20
我不熟悉kint,但检查了文档,发现要禁用kint输出,您可以使用(在运行时)
// to disable all output
Kint::enabled(false);在Laravel中,您可以使用
$env = App::environment();
if($env == 'your_predefined_environment') {
Kint::enabled(false);
}要配置您的环境,您可以检查文档。
更新:我已经设置了我的本地环境如下(在bootstrap/start.php中)
$env = $app->detectEnvironment(array(
'local' => array('*.dev'),
));在我的本地机器上,我设置了一个虚拟mashine,其中包含laravel4.dev作为基url,所以如果我使用laravel4.dev or laravel4.dev/logon访问应用程序,我就可以检查laravel4.dev or laravel4.dev/logon中的环境,因为.dev检测本地环境。
public function __construct()
{
if(App::environment() == 'local') {
// do something
}
}在您的示例中,我不知道用于打印输出的第一个调试/跟踪在哪里,因此在使用任何Kint之前,您应该保持环境检查和禁用debug/trace代码,但是您可以尝试这样做(如果它对您有效),但是您也可以检查filter/routes文件中的环境。
https://stackoverflow.com/questions/19738344
复制相似问题