用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3960|回复: 10
收起左侧

[讨论/交流] 。自定义配置文件路径加载获取参数

[复制链接]
发表于 2015-3-14 00:27:16 | 显示全部楼层 |阅读模式
手册上面说装载器类
装载,顾名思义,是用来装载元素。这些元素可以是库 (类) 视图文件辅助函数模型, 或者是你自己的文件
配置文件怎么不行呢??
我的目录结构是这样的
application
55555.png
我现在是想调用share/config/config.php里面的参数,config.php是这样的
PHP复制代码
 
<?php
$config['web_config'] = "http://www.57sy.com";
 
 
复制代码

我新建一个控制器
PHP复制代码
 
<?php
class Test extends CI_Controller{
        function index(){
                $this->load->add_package_path(FCPATH."/share/");
                echo config_item("web_config");
        }
}
 
 
复制代码

我纳闷了 为什么没有输出结果呢?
library models 都可以进行自定义路径的哦!!
 楼主| 发表于 2015-3-16 10:51:59 | 显示全部楼层
燃雲 发表于 2015-3-14 18:25
加了路径,却不去加载文件,如何会读入相关参数,试加一句

已经测试成功了 , 代码如下:
PHP复制代码
 
<?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的读取配置文件方法进行读取即可
发表于 2015-3-14 16:29:50 | 显示全部楼层
是不是在控制器装入那里:FCPATH.'/share/config/'啊,我也不大懂
 楼主| 发表于 2015-3-14 17:45:47 | 显示全部楼层
dllhb 发表于 2015-3-14 16:29
是不是在控制器装入那里:FCPATH.'/share/config/'啊,我也不大懂

这个我也已经测试过的 还是不行的
发表于 2015-3-14 18:25:49 | 显示全部楼层
加了路径,却不去加载文件,如何会读入相关参数,试加一句

PHP复制代码
$this->config->load();
复制代码


PHP复制代码
$this->config->load("config");
复制代码


在当中又如何?


发表于 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/"虽奇怪,但仍能正确处理,其它环境则不得而知。
发表于 2015-3-16 10:36:26 | 显示全部楼层
配置文件是需要 load 的,参考 http://codeigniter.org.cn/user_guide/libraries/config.html
 楼主| 发表于 2015-3-16 10:58:09 | 显示全部楼层
Hex 发表于 2015-3-16 10:36
配置文件是需要 load 的,参考 http://codeigniter.org.cn/user_guide/libraries/config.html

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

然后在读取就好了
发表于 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';
}


这样不用每个文件每个函数写重复代码。
纯属个人。。。

本版积分规则