Codeigniter 一种从缓存文件夹中获取类似配置的数组的简单方法


Codeigniter a simple way to get config-like array from cache folder

我有一些数组格式的数据,我将其写入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')

我知道这不是配置的东西,但由于您将它们放在单独的文件中,因此使用它们会更好