Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter从缓存文件夹获取类似配置的数组的简单方法_Php_Arrays_Oop_Codeigniter_Global Variables - Fatal编程技术网

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)