加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 代码点火器第三方,$this-> load-> add_package_pat

发布时间:2020-12-13 17:07:29 所属栏目:PHP教程 来源:网络整理
导读:我想用 elliothaughins Socialize system代码点火器, 但是我一直在努力 Message: include(application/third_party/config/socializenetworks.php): failed to open stream: No such file or directory 我跟踪过这个问题,当我打电话的时候 $这 – 负载 add_p
我想用 elliothaughins Socialize system代码点火器,

但是我一直在努力

Message: include(application/third_party/config/socializenetworks.php): failed to open stream: No such file or directory

我跟踪过这个问题,当我打电话的时候
$这 – >负载> add_package_path(APPPATH.’third_party /社交/’);

在loader类中如果我死($path)我只得到application / third_party.

虽然控制器的代码是,但这看起来很奇怪

class SocializeController extends CI_Controller {

  function __construct(){
    parent::__construct();
    parse_str($_SERVER['QUERY_STRING'],$_GET);
    $this->load->add_package_path(APPPATH.'third_party/socialize/');
    $this->_autoload();
  }

  private function _autoload(){
    $this->load->model('socialize_migration_model');
    $autoload = array();

    include(APPPATH.'third_party/socialize/config/autoload'.EXT);
    foreach ( $autoload as $type => $files ) {
      $type = ($type == 'libraries') ? 'library' : $type;

      foreach ( $files as $file ){
        $this->load->$type($file);
      }
    }
  }

  public function data($key,$value)
  {
    $this->load->vars(array($key => $value));
  }
}

你可以看到它正在调用一个成功加载的模型,
当它到达自动加载器时,它会加载它打破的库,

提供问题的特定库就像开始一样

class SocializeNetworks {

  private $_obj;
  private $_networks = array();

  function __construct(){
    $this->_obj =& get_instance();
    $this->_obj->load->config('socializenetworks'); // this is the line we die on :(

所以,

什么事情发生在这里,我该如何解决?

解决方法

我在昨天的CI v2.0.2代码库中追溯到了一个bug.基本上正在发生的是你正在添加一个额外的路径来检查文件(这是正确的),并且load方法循环遍历每个路径,直到找到你要查找的文件.

如果您输出CI对象,您可能会看到您正在寻找的内容,但它仍然失败.

在文件/codeigniter/core/Config.php中,load方法由于某种原因,$found = false;通过路径循环不会在每次迭代时重置,所以如果在第一次运行时找到路径(就像我的情况那样),那么$found设置为true,但是在后续运行中,$found仍然是,所以它试图包含一个不存在的文件.

我通过将$found变量的声明移到第一个foreach循环开头的下方来解决这个问题.这样它每次都会重置它.我报告了这个bug,所以希望它会在后续版本中得到解决.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读