我无法加载自己的配置文件。如何自动加载或手动加载此文件?
$psr4 = [
'Config' => APPPATH.'Config',
APP_NAMESPACE => APPPATH, // For custom namespace
'App' => APPPATH, // To ensure filters, etc still found,
'Tests\Support' => TESTPATH.'_support', // So custom migrations can run during testing
];
答案 0 :(得分:1)
@DFriend 是对的,我只是找不到与自动加载配置相关的任何内容。但是我们可以在\App\Controllers\BaseController 的initController 函数中添加这个,如下所示:
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);
//--------------------------------------------------------------------
// Preload any models, libraries, etc, here.
//--------------------------------------------------------------------
// E.g.: $this->session = \Config\Services::session();
$this->config = \Config\Services::YOUR_CONFIG_CLASS();
}
答案 1 :(得分:0)
在 / application / Config 文件夹中创建配置文件,并在文件 SomeConfig.php 中定义类。
<?php namespace Config;
class SomeConfig extends \CodeIgniter\Config\BaseConfig
{
public $foo = 'This is foo';
public $bar = 'This is bar';
}
您使用此
“加载”该课程$someConfig = new \Config\SomeConfig();
然后你用它:
$fooMessage = $someConfig->foo;
$barMessage = $someConfig->bar;
我不需要对 /application/Config/Autoload.php
做任何事情。请勿将CI v4中的“autoloading”与“Auto-loading Resources”的CI v3功能混淆。他们是完全不同的东西!
在v4中,“自动加载”是关于根据类namespace查找文件。
在v3中,它是一个在启动框架时自动初始化(加载)类的功能。