我有一些数组格式的数据,我将其写入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;
这是我正在使用的方式,但我不确定它是否正确或有效的方法。
感谢您的任何想法和建议。
如何使用 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;
}
}
为什么不在config文件夹中创建一个称为缓存的文件.php在文件中,只需像这样放置数据
$config['some_key'] = 'some_data';
然后,您可以在构造中使用此代码
$this->load->config('cache', TRUE);
$extra_data = $this->config->item('cache')
我知道这不是配置的东西,但由于您将它们放在单独的文件中,因此使用它们会更好