042.CI4框架CodeIgniter,控制器過濾器Filter配合Services的使用

像一棵海草海草海草發表於2024-09-01

01、Config中的Services.php程式碼如下:

<?php

namespace Config;

use App\Libraries\Tx_Auth;
use CodeIgniter\Config\BaseService;

class Services extends BaseService
{
    //使用者許可權類
    public static function user_auth($getShared = true)
    {
        echo '測試service能不能正常呼叫。';
        if ($getShared) {
            return static::getSharedInstance('user_auth');
        }
        return new Tx_Auth();
    }
}

02、Libraries中的Tx_Auth.php程式碼如下:

<?php

namespace App\Libraries;


class Tx_Auth
{
    //測試函式
    function test001()
    {
        ShowMessage('哈哈1!');
    }

}

03、MyFilter程式碼如下:

<?php

namespace App\Filters;

use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;

//use App\Config\Services;

class MyFilter implements FilterInterface
{
    public function before(RequestInterface $request,
                                            $arguments = null)
    {
        $m_auth = service('user_auth');
        $m_auth->test001();
        echo '我是Filter中的一句話。';
        //加上這一句,就不往下執行了
        //exit;
    }

    public function after(RequestInterface  $request,
                          ResponseInterface $response,
                                            $arguments = null)
    {
        // Do something here
    }
}

04、效果如下:

05、瀏覽器效果如下:

相關文章