如何一次自动加载codeigniter4库,并在Controller,Model和View中像CI3一样在每个位置访问它

问题描述 投票:0回答:1

在CI3中,我们创建了自定义库,并将其自动加载到config / autoload.php中,然后我们可以在控制器,模型,视图中的任何地方使用它,只需通过简单的$ this-> rules-> status()即可,其中Rule是应用程序中的库/库文件夹

但是无法在CI 4中执行相同的操作,是否有其他替代方法可用于此

codeigniter codeigniter-3 codeigniter-4
1个回答
0
投票

如果要加载自己的库,则每当要使用此库时,都必须依赖名称空间并创建一个新对象。另外,请务必检查app/Config/Autoload.php文件,以便自动加载器知道您的自定义库。由于已删除了codeigniter 3超对象,因此您无法随时随地访问它。但是,您可以将其加载到视图,控制器和模型中,并使视图,控制器和模型扩展它。

例如,位于FooLib中的名为app/Librairies的库将是:

namespace App\Libraries;  

  class FooLib {

    public function __construct() {
      // your constructor
    }

    // ...

   }

如果要在Controller中调用它:

namespace App\Controllers;

use App\Libraries\FooLib
use CodeIgniter\Controller;

class FooController extends Controller {

    protected $lib;

    public function __construct() {
        $this->lib = new FooLib();
    }
}

并确保通过修改app/Config/Autoload.php变量将其添加到$psr4中的自动加载器中>

$psr4 = [
            'App'         => APPPATH,                // To ensure filters, etc still found,
            APP_NAMESPACE => APPPATH,                // For custom namespace
            'Config'      => APPPATH . 'Config',
            'Libraries'   => APPPATH . 'Libraries'   // Your custom librairies
        ];
© www.soinside.com 2019 - 2024. All rights reserved.