如何在codeigniter 4中自动加载自制的配置文件?

时间:2018-06-06 13:00:11

标签: codeigniter autoload

我无法加载自己的配置文件。如何自动加载或手动加载此文件?

    $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
    ];

2 个答案:

答案 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中,它是一个在启动框架时自动初始化(加载)类的功能。