57sy.com(隐身中 发表于 2015-3-14 00:27:16

。自定义配置文件路径加载获取参数

手册上面说装载器类
装载,顾名思义,是用来装载元素。这些元素可以是库 (类) 视图文件, 辅助函数, 模型, 或者是你自己的文件
配置文件怎么不行呢??
我的目录结构是这样的
application

我现在是想调用share/config/config.php里面的参数,config.php是这样的

<?php
$config['web_config'] = "http://www.57sy.com";


我新建一个控制器

<?php
class Test extends CI_Controller{
        function index(){
                $this->load->add_package_path(FCPATH."/share/");
                echo config_item("web_config");
        }
}


我纳闷了 为什么没有输出结果呢?
library models 都可以进行自定义路径的哦!!

57sy.com(隐身中 发表于 2015-3-16 10:51:59

燃雲 发表于 2015-3-14 18:25
加了路径,却不去加载文件,如何会读入相关参数,试加一句




已经测试成功了 , 代码如下:
<?php
class Test extends CI_Controller{
        function index(){
                $this->load->add_package_path(FCPATH."share/");
                $this->config->load();
                echo $this->config->item('web_config');
        }
}



//1;必须设置读取的路径
//2:加载文件
//3:然后用CI的读取配置文件方法进行读取即可

dllhb 发表于 2015-3-14 16:29:50

是不是在控制器装入那里:FCPATH.'/share/config/'啊,我也不大懂

57sy.com(隐身中 发表于 2015-3-14 17:45:47

dllhb 发表于 2015-3-14 16:29
是不是在控制器装入那里:FCPATH.'/share/config/'啊,我也不大懂

这个我也已经测试过的 还是不行的

燃雲 发表于 2015-3-14 18:25:49

加了路径,却不去加载文件,如何会读入相关参数,试加一句

$this->config->load();

$this->config->load("config");

在当中又如何?


luofuchuan 发表于 2015-3-15 10:43:39

我曾经也想过!但是也没结果!

燃雲 发表于 2015-3-15 14:13:56

luofuchuan 发表于 2015-3-15 10:43
我曾经也想过!但是也没结果!

肯定?

我是测试过才说的,完全能读入参数,没问题!

假如显示不了,应是其它问题。

是什么版本CI?什么环境?目录,文件设定是否不让读?

顺带一提,按CI规定,目录必须以"/"结束,FCPATH."/share/"不对,应是FCPATH."share/"。在Linux下,FCPATH."/share/"虽奇怪,但仍能正确处理,其它环境则不得而知。

Hex 发表于 2015-3-16 10:36:26

配置文件是需要 load 的,参考 http://codeigniter.org.cn/user_guide/libraries/config.html

57sy.com(隐身中 发表于 2015-3-16 10:58:09

Hex 发表于 2015-3-16 10:36
配置文件是需要 load 的,参考 http://codeigniter.org.cn/user_guide/libraries/config.html

老大好像前提必须是设置配置文件所读取的目录吧
$this->load->add_package_path(FCPATH."share/");

然后在读取就好了

gxcnvip 发表于 2015-3-16 13:00:02

1. 在shared/config/constant.php定义:
define("XX_SHARED_PATH", BASEPATH . "../shared/");
define("XX_EXTENSION_PATH", BASEPATH . "../extensions/");
define("__ROOT__", str_replace("\\", "/", FCPATH));        //定义项目的根路径

2. 在项目的config/autoload.php:
$autoload['packages'] = array(XX_SHARED_PATH);

3. 在项目的config/config.php最底:
if(file_exists(__ROOT__ . '/config/config.inc.php'))
{
        //包含网站的配置文件
        include __ROOT__ . '/config/config.inc.php';
}


这样不用每个文件每个函数写重复代码。
纯属个人。。。
页: [1] 2
查看完整版本: 。自定义配置文件路径加载获取参数