在Yii2框架中,更好的地方定义了可以在任何地方访问的通用功能,如控制器,模型,视图

Sun*_*cho 1 yii yii2 yii2-advanced-app yii2-basic-app

就像我想创建名为"dt()"的函数

function dt(){
    return date('Y-m-d H:i:s');
}
Run Code Online (Sandbox Code Playgroud)

并希望像这样访问它: -

echo dt(); //retrun current date and time format
Run Code Online (Sandbox Code Playgroud)

在Yii2框架中哪个更好的地方呢?

Asf*_*han 6

对于yii2,首先"components"在项目根文件夹中创建一个文件夹.

然后在组件文件夹.ie MyComponent.php或任何内容中编写自定义组件.

namespace app\components;

use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;

class MyComponent extends Component
{
  public function dt(){
    return date('Y-m-d H:i:s');
  }
}
Run Code Online (Sandbox Code Playgroud)

现在在配置文件中添加您的组件.

'components' => [

         'mycomponent' => [

            'class' => 'app\components\MyComponent',

            ],
           ]
Run Code Online (Sandbox Code Playgroud)

你做完了!现在,您可以在任何控制器,模型或视图中使用组件功能"dt".

例如:

   Yii::$app->MyComponent->dt();
Run Code Online (Sandbox Code Playgroud)