【问题标题】:CodeIgniter HMVC error after updating PHP to PHP 7将 PHP 更新到 PHP 7 后 CodeIgniter HMVC 错误
【发布时间】:2017-10-06 01:26:47
【问题描述】:

将 5.6 更新到 PHP 7 之后。 我正在使用 Code Igniter 的 HMVC 实现,PHP 升级开始引发以下错误:-

  1. 遇到 PHP 错误 严重性:警告

    消息:MX_Loader::library($library, $params = NULL, $object_name = NULL) 应该兼容 CI_Loader::library($library = '', $params = NULL, $object_name = 空)

    文件名:MX/Loader.php

    行号:143

  2. 遇到 PHP 错误 严重性:警告

    消息:MX_Loader::helper($helper) 的声明应该是 兼容 CI_Loader::helper($helpers = Array)

    文件名:MX/Loader.php

    行号:0

  3. 遇到 PHP 错误 严重性:警告

    消息:MX_Loader::helpers($helpers) 的声明应该是 兼容 CI_Loader::helpers($helpers = Array)

    文件名:MX/Loader.php

    行号:0

  4. 遇到 PHP 错误 严重性:警告

    消息:声明 MX_Loader::language($langfile, $lang = '', $return = false) 应该与 CI_Loader::language($file = 数组,$lang = '')

    文件名:MX/Loader.php

    行号:0

  5. 遇到 PHP 错误 严重性:警告

    消息:MX_Loader::_ci_get_component($component) 的声明 应该兼容 & CI_Loader::_ci_get_component($component)

    文件名:MX/Loader.php

    行号:0

  6. 遇到 PHP 错误 严重性:警告

    消息:MX_Lang::load($langfile, $lang = '', $return 的声明 = false, $_module = NULL) 应该兼容 CI_Lang::load($langfile = '', $idiom = '', $return = false, $add_suffix = true, $alt_path = '')

    文件名:MX/Lang.php

    行号:70

  7. 遇到 PHP 错误 严重性:通知

    消息:只能通过引用分配变量

    文件名:core/Loader.php

    行号:257

【问题讨论】:

  • 你有哪个版本的 CI ?
  • codeigniter 2.2.6
  • CI 2.2.6 不兼容 PHP 7 和 hmvc afaik,您需要升级到 CI 3 并从 wiredesignz (bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/…) 安装最新更新
  • 感谢您的建议,对不起,这是我现有的项目,所以现在我无法更新 ci 版本,但我已经解决了所有问题。

标签: php codeigniter


【解决方案1】:

我已经解决了所有问题。贝娄我给了:

 1.third_party\MX\Lang.php
    line = 134
    public function library($library = '', $params = NULL, $object_name = NULL) 

    2.third party\MX\Loder.php
     line=105
     pulic function helper($helper = array())

    3.third party\MX\Loder.php
     line=120
     pulic function helper($helper = array())


    4.third party\MX\Loder.php
     line=124
    public function language($langfile=array(), $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '') 

    5.third party\MX\Loder.php
     line=271
    public function  &_ci_get_component($component)


    6.third party\MX\Lang.php
     line=70
    public function load($langfile ='', $lang = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '', $_module = '')


    7.system/core/commopn.php
     line=257
         $_config[0] =& $config;
           return $_config[0];

【讨论】:

    【解决方案2】:

    您可以阅读您的错误描述,它说 MX_Loader 类中的某些功能不兼容。与父类不兼容。

    我的 MX 类扩展了 CI_Loader,它是 CI 核心加载器。 所以只需在错误信息中找到提到的函数,然后在Core Loader中找到它。您可以在 system/core/loader.php 中找到它

    例如错误号 1 有库函数错误。只需在核心加载器中找到“库”函数并将函数内的参数复制到 MX 加载器中库函数的参数中即可。 以此类推

    【讨论】:

      【解决方案3】:

      下载最新的 CI 3.1

      使用更新的 CI 3.1 更改 CI 的文件夹系统

      转到 /var/www/html/application/config

      将“dbdriver”从“mysql”更改为“mysqli”,

      就是这样。

      【讨论】:

        猜你喜欢
        • 2016-08-28
        • 2016-08-27
        • 2017-05-24
        • 2015-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-19
        • 2018-08-22
        相关资源
        最近更新 更多