在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ thinkphp5 中的應(yīng)用公共文件怎么理解?

thinkphp5 中的應(yīng)用公共文件怎么理解?

我的后臺模塊 admin,所有控制器都需要操作鑒權(quán),或者構(gòu)建操作菜單,或者其它一些公共操作

在忽略中間鍵的前提下:

我以前的寫法都是,寫一個“母版”控制器common,然后所有的控制器繼承這個母版控制器,在母版中做這些操作,我總覺得這樣的寫法蹩腳 !

我不是很理解面向?qū)ο笾械膽?yīng)用公共文件,當(dāng)然thinkphp 里的 common.php 這種自定義函數(shù),這個不算。

求分析 …

回答
編輯回答
愚念

舉個例子
公共模塊

public function checkmsg ($phone,$msg);{
    if(手機驗證碼正確){
            returun true;
    }else{
         throw new Exception("驗證碼錯誤");
    }
}

home模塊 的一個注冊模塊要用到驗證碼功能

public function login($msg,$phone,$password){
    公共模塊下的checkmsg($phone,$msg);
    //后面就是添加這個用戶的信息到數(shù)據(jù)等操作。。。
}

admin模塊 一個需要通過手機號碼驗證管理員身份的功能

public function checkauthority($msg,$phone){
     公共模塊下的checkmsg($phone,$msg);
    //確認(rèn)是管理員后就可以進(jìn)行XXX操作了
}

這樣就可以共同用一個東西

2017年2月12日 04:53
編輯回答
墨小白

我說的不一定對,但是想跟你交流下,我認(rèn)為應(yīng)用公共文件包括前段文件個后端文件,后端的就是一些控制器的公共方法,比如說怎刪改查,前段的就是一些頁頭頁尾之類的

2017年1月15日 20:16
編輯回答
凹凸曼

這種最常見用采用的
BaseController
然后的
AdminController extend BaseController

這樣的顯然樓主是不想要的

那么來一點“設(shè)計模式”

我們可以把依賴先注入到堆棧中,要用的時候再觸發(fā)唄。

在tp3.2 和tp5中都可以用

這里用TP5

amespace app\index\behavior;

use think\Request;

class Test 
{
    public function run(Request $request, $params)
    {
        // 行為邏輯
    }
}

在應(yīng)用目錄下面或者模塊的目錄下面定義tags.php文件來統(tǒng)一定義行為,定義格式如下

return [
    //index目錄下
    'app_init'=> [
        'app\\index\\behavior\\CheckAuth',
    ],
]

直接執(zhí)行行為

// 執(zhí)行 app\index\behavior\CheckAuth行為類的run方法 并引用傳入params參數(shù)
$result = Hook::exec('app\\index\\behavior\\CheckAuth',$params);

詳情見 鉤子和行為 :https://www.kancloud.cn/manua...

2017年5月24日 07:58