yii2 擴展和自定義(函數 , 組件 , 模塊)

自定義輔助函數
入口文件加載
目錄下建立一個helpers目錄下建立functions.php 文件
<?phpphp

if (! function_exists('hello')) {
    function hello(){
        echo 'hello word';
    }
}json

修改項目入口文件index.phpyii2

新增以下代碼:app

require(__DIR__ . '/../helpers/functions.php');composer

composer中設置加載(推薦)yii

在 composer.json 文件裏面添加以下代碼:函數

"autoload": {
    "files": [  
        "common/components/functions.php"
    ]
},
添加完以後,在common/components下添加文件functions.php,項目根目錄下執行 composer update
ok!佈局

自定義component 組件post

在app\components下新建NewComponent.phpui


namespace app\components;  
use Yii;  
use yii\base\Component;  
use yii\base\InvalidConfigException;  
   
class NewComponent extends Component
{  
 public function hello()  
 {  
  echo "hello world";  
 }  
   
}  
 main.php配置文件中
'components' => [  
   
         'testcomponent' => [  
   
            'class' => 'app\components\MyComponent',  
   
            ],  
]  

下面就能夠愉快的使用 組件了是否是很簡單 !

Yii::$app->testcomponent->hello();  


自定義Modules 模塊
如下參考yii2.0 權威指南

新建一個以下目錄
forum/
    Module.php                   模塊類文件
    controllers/                 包含控制器類文件
        DefaultController.php    default 控制器類文件
    models/                      包含模型類文件
    views/                       包含控制器視圖文件和佈局文件
        layouts/                 包含佈局文件
        default/                 包含DefaultController控制器視圖文件
            index.php            index視圖文件

Module.php 代碼以下

namespace app\modules\forum;

class Module extends \yii\base\Module
{
    public function init()
    {
        parent::init();


        $this->params['foo'] = 'bar';
        // ...  其餘初始化代碼 ...
    }
}

若是 init() 方法包含不少初始化模塊屬性代碼, 可將他們保存在配置 並在init()中使用如下代碼加載:
public function init()
{
    parent::init();
    // 從config.php加載配置來初始化模塊
    \Yii::configure($this, require(__DIR__ . '/config.php'));
}
config.php配置文件可能包含如下內容,相似應用主體配置.
<?php
return [
    'components' => [
        // list of component configurations
    ],
    'params' => [
        // list of parameters
    ],
];

使用模塊
要在應用中使用模塊,只須要將模塊加入到應用主體配置的yii\base\Application::modules屬性的列表中, 以下代碼的應用主體配置 使用 forum 模塊:
[
    'modules' => [
        'forum' => [
            'class' => 'app\modules\forum\Module',
            // ... 模塊其餘配置 ...
        ],
    ],
]

訪問路由 forum/post/index 表明模塊中 post 控制器的 index 操做

相關文章
相關標籤/搜索