Php Codeigniter从缓存文件夹获取类似配置的数组的简单方法
我有一些数组格式的数据,我将其写入Php Codeigniter从缓存文件夹获取类似配置的数组的简单方法,php,arrays,oop,codeigniter,global-variables,Php,Arrays,Oop,Codeigniter,Global Variables,我有一些数组格式的数据,我将其写入application/cache文件夹中的一个文件中。 格式为: $extra_data['some_key'] = 'some_data'; 它不是直接关于站点配置的,所以我不想把它放在application/config中。但是,在某些情况下,我需要在控制器或模型中访问此$extra_data 我所做的是 1) 在控制器中定义变量 class pages_model extends CI_Model { var $extra_data; 2) 包含
application/cache
文件夹中的一个文件中。
格式为:
$extra_data['some_key'] = 'some_data';
它不是直接关于站点配置的,所以我不想把它放在application/config
中。但是,在某些情况下,我需要在控制器或模型中访问此$extra_data
我所做的是
1) 在控制器中定义变量
class pages_model extends CI_Model
{
var $extra_data;
2) 包含缓存文件并将其与上述变量关联
function __construct()
{
parent::__construct();
@include_once APPPATH . "cache/extra_data.php";
$this->extra_data = $extra_data;
}
3) 获取类变量作为变量,然后使用它:
function func_name()
{
$extra_data = $this->extra_data;
这是我正在使用的方法,但我不确定这是正确或有效的方法
谢谢你的建议。为什么不在config文件夹中创建一个名为cache.php的文件呢 在文件中,只需像这样放置数据
$config['some_key'] = 'some_data';
然后可以在构造中使用此代码
$this->load->config('cache', TRUE);
$extra_data = $this->config->item('cache')
我知道这不是配置,但由于您将它们放在单独的文件中,因此使用它们将是更好的方法如何使用缓存()扩展加载程序库 然后你可以这样称呼它:
$this->load->cache('extra_data');
库/MY_Loader.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Loader extends CI_Loader {
/* Load custom cache values */
function cache($str = '') {
$CI =& get_instance();
$data = array();
$path = APPATH . "cache/{$str}.php";
if (file_exists($path)) {
include $path;
$data = $extra_data;
}
$CI->$str = $data;
}
如果没有更多的答案,我最终将不得不使用这种方式。出于好奇,为什么要调用file\u get\u contents($path)
而不是file\u exists($path)
?