Debugging 动态打开/关闭Yii调试工具栏

Debugging 动态打开/关闭Yii调试工具栏,debugging,yii,yii2,toolbar,css,Debugging,Yii,Yii2,Toolbar,Css,是否可以动态打开/关闭Yii2调试工具栏,例如,如果请求url包含“调试=1”或“调试=0”?提供了调试工具栏 通过Yii 2的调试扩展 此工具栏的激活与app/web/index.php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); 这些值是否为常量?这意味着在运行时无法更改 因此,工具栏的激活/停用只能在脱机状态下进行 或者至少它意味着在i

是否可以动态打开/关闭Yii2调试工具栏,例如,如果请求url包含“调试=1”或“调试=0”?

提供了调试工具栏 通过Yii 2的调试扩展

此工具栏的激活与
app/web/index.php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
这些值是否为常量?这意味着在运行时无法更改

因此,工具栏的激活/停用只能在脱机状态下进行

或者至少它意味着在index.php文件中的应用程序文件的入口点中更改这些常量。您可以尝试通过重写代码来动态更改它(这很危险,但应该是可能的)

除了回答之外,您还可以作为客户端技术来完成。换句话说,使用。但是,您应该注意解决方案只是隐藏调试工具栏内容,而不是阻止生成这些内容

调试工具栏内容呈现在
div
中,具有
id
属性值
yii调试工具栏
。在主布局中,可以执行以下操作:

<?php $this->endBody() ?><!- after this line -->
<?php if (Yii::$app->request->get('debug') == '0'):?>
<style>
  #yii-debug-toolbar{
    display: none !important;
  }
</style>
<?php endif; ?>
</body>

真的不是一个好主意,除非您想在开发阶段将所有这些数据提供给hackersIn,否则您可能需要有一种快速的方法来隐藏演示文稿中的调试工具栏,比如查看最终设计或类似的内容。这可能是这方面的一个好办法@换句话说,假设设计师说:“嗨,dev,请隐藏那该死的工具栏!”:)你只需要告诉他使用URL参数
debug=0来访问页面
?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

/* The solution */
$config = require(__DIR__ . '/../config/web.php');
if (isset($_GET['debug']) && $_GET['debug'] == '0'){
  $config['modules']['debug']['allowedIPs'] = ['1270.05.0.1'];
}


(new yii\web\Application($config))->run();