将CI3升级到CI4-配置文件 [英] Upgrade CI3 to CI4 - configuration files

查看:0
本文介绍了将CI3升级到CI4-配置文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Codeigniter 3中,我有一个简单的settings.php文件,如下所示:

<?php

$config["lang1_HTML"] = "sr-Latn-RS";
$config["lang1_HTML_2"] = "sr-Latn";
$config["lang1_HTML_3"] = "";
$config["lang1_code"] = "SRP";
$config["lang1_flag"] = "/images/flags/rs.png";
$config["sr"] = "lang1";
$config["lang3"] = "en";
$config["lang3_HTML"] = "en-RS";
$config["lang3_HTML_2"] = "en";
$config["lang3_HTML_3"] = "";
$config["lang3_code"] = "ENG";
...

现在我想将其升级到CI4。是否有可能在不更改此文件的情况下将其放入appConfig中,并且仍然可以访问此数组?

或者更好的是,是否可以自动加载Settings.php并像这样使用它?

推荐答案

Upgrading from 3.x to 4.x » Upgrade Configuration

升级指南

  1. 您必须根据CI3文件中的更改更改默认CI4配置文件中的值。配置名称很漂亮 与CI3中的基本相同。

  2. 如果在CI3项目中使用自定义配置文件,则必须在中将这些文件创建为CI4项目中的新PHP类 应用/配置。这些类应该位于Config命名空间中,并且应该扩展CodeIgniterConfigBaseConfig

    一旦创建了所有自定义配置类,就必须将变量从CI3配置复制到新的CI4配置类中 公共类属性。

  3. 现在,您必须在获取配置值的任何地方更改配置获取语法。CI3语法类似于 $this->config->item('item_name');。你必须把这个改成 config('MyConfigFile')->item_name;

步骤A:

在扩展CodeIgniterConfigBaseConfigConfig命名空间中创建新类app/Config/Settings.php

步骤B:

将变量从CI3配置复制到新的CI4配置类中,作为公共类属性。即:

<?php

namespace Config;

class Settings extends CodeIgniterConfigBaseConfig
{
    public string $lang1_HTML = "sr-Latn-RS";
    public string $lang1_HTML_2 = "sr-Latn";
    public string $lang1_HTML_3 = "";
    public string $lang1_code = "SRP";
    public string $lang1_flag = "/images/flags/rs.png";
    public string $sr = "lang1";

    // ...

}

步骤C:

在获取配置值的位置更改配置获取语法。

即:从$this->config->item('lang1_HTML');config(ConfigSettings::class)->lang1_HTML;



摘要:

访问您的配置
CodeIgnter 3.x CodeIgniter 4.x
1.加载自定义配置文件。
Manual Loading
$this->config->load('config_filename');
CodeIgniter 4.x将在所有定义的命名空间中automatically look for the files以及/app/Config/
2.处理名称冲突
如果需要加载多个配置文件,通常会将它们合并到一个主$config数组中。为了避免冲突,可以将第二个参数设置为TRUE,每个配置文件将存储在与配置文件名称对应的数组索引中。
加载配置文件:$this->config->load('settings', TRUE);
访问项:$this->config->item('settings')['lang1_HTML']
您不必担心这一点,因为所有配置文件都驻留在各自的类中。访问项:config(ConfigSettings::class)->lang1_HTML
3.获取配置项。
$this->config->item('lang1_HTML'); config(ConfigSettings::class)->lang1_HTML
4.动态设置或更改已有的配置项。
Set item$this->config->set_item('lang1_HTML', 'sr-Cyrl-ME');
访问设置项:$this->config->item('lang1_HTML');
设置项:config(ConfigSettings::class)->lang1_HTML = 'sr-Cyrl-ME'
访问设置项:config(ConfigSettings::class)->lang1_HTML
5.自动加载。
Global Auto-loading:打开应用程序/配置/autoload.php中的autoload.php文件,按照文件中的指示添加您的配置文件。

$autoload['config'] = array('settings');
全局自动加载:config(...) helper function默认返回特定配置类的共享实例,无需配置。因此,您始终可以使用:

config('config_class_here')->item_name_here;

这篇关于将CI3升级到CI4-配置文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆