假设我有一个Debug助手,其方法是以类似于此的方式显示变量的内容:
namespace app\components;
class D extends \yii\base\Component
{
public static function trace($variable='')
{
echo $variable;
}
}
有没有办法让这个组件可以在任何Controller
,Model
和View
中使用,只需使用简单的表单,然后写一下:
D::trace($bob);
我想知道是否可以在任何地方导入它,所以我不必使用其中一个
// Load in config then use this (too long)
Yii::$app->D->trace($key);
// Write the whole namespace everytime (too long)
\app\components\D::trace($value);
// Load the namespace first every time I need it first (Annoying)
use app\components\D;
D::trace($value);
答案 0 :(得分:1)
您有两种选择:
在全局命名空间中创建帮助器并在任何地方添加前导斜杠:
\D::trace($value);
创建全局函数作为helper(或其方法)的包装器:
function d() {
static $d;
if ($d === null) {
$d = new D();
}
return $d;
}
d()->trace($string)
或
function dtrace($string) {
return D::trace($string);
}
dtrace($string);