在CI3中,我们创建了自定义库,并将其自动加载到config / autoload.php中,然后我们可以在控制器,模型,视图中的任何地方使用它,只需通过简单的$ this-> rules-> status()即可,其中Rule是应用程序中的库/库文件夹
但是无法在CI 4中执行相同的操作,是否有其他替代方法可用于此
如果要加载自己的库,则每当要使用此库时,都必须依赖名称空间并创建一个新对象。另外,请务必检查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
];