0

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

这是我正在使用的方式,但我不确定它是正确还是有效的方式。

感谢您的任何想法和建议。

4

2 回答 2

1

用 cache() 扩展 Loader 库怎么样?

然后你可以这样称呼它:

$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;

    }

}

于 2012-05-28T13:39:17.427 回答
0

为什么不在配置文件夹中创建一个名为 cache.php 的文件,只需像这样放置数据

$config['some_key'] = 'some_data';

然后你可以在你的构造中使用这个代码

    $this->load->config('cache', TRUE);
    $extra_data = $this->config->item('cache')

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

于 2012-05-28T12:57:55.603 回答