首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel 4环境下禁用Kint

如何在Laravel 4环境下禁用Kint
EN

Stack Overflow用户
提问于 2013-11-02 02:28:52
回答 2查看 1.2K关注 0票数 2

我在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)

我如何做到这一点:

  • ,而不编辑将被composer覆盖的/供应商/目录中的文件。
  • ,因此kint仅在本地环境中启用。

我还尝试将以下内容添加到一个helpers.php文件中,这个文件在/ 这里 /autooload.php中的composer之前调用。

代码语言:javascript
复制
<?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 );

(但没有骰子:)

有什么建议吗?蒂娅!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-06 07:40:01

嗯..。我不确定这是否是理想的方法,但这是可行的,看起来拉拉维尔:

代码语言:javascript
复制
// top of app/start/global.php
Kint::enabled(false);

代码语言:javascript
复制
// app/start/local.php
Kint::enabled(true);

(假设您已经定义了一个本地环境:请参阅@TheAlpha的答案以获得更多信息)

http://laravel.com/docs/lifecycle#start-files

票数 2
EN

Stack Overflow用户

发布于 2013-11-02 07:09:20

我不熟悉kint,但检查了文档,发现要禁用kint输出,您可以使用(在运行时)

代码语言:javascript
复制
// to disable all output
Kint::enabled(false);

Laravel中,您可以使用

代码语言:javascript
复制
$env = App::environment();
if($env == 'your_predefined_environment') {
    Kint::enabled(false);
}

要配置您的环境,您可以检查文档

更新:我已经设置了我的本地环境如下(在bootstrap/start.php中)

代码语言:javascript
复制
$env = $app->detectEnvironment(array(
    'local' => array('*.dev'),
));

在我的本地机器上,我设置了一个虚拟mashine,其中包含laravel4.dev作为基url,所以如果我使用laravel4.dev or laravel4.dev/logon访问应用程序,我就可以检查laravel4.dev or laravel4.dev/logon中的环境,因为.dev检测本地环境。

代码语言:javascript
复制
public function __construct()
{
    if(App::environment() == 'local') {
        // do something
    }
}

在您的示例中,我不知道用于打印输出的第一个调试/跟踪在哪里,因此在使用任何Kint之前,您应该保持环境检查和禁用debug/trace代码,但是您可以尝试这样做(如果它对您有效),但是您也可以检查filter/routes文件中的环境。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19738344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档