CI 2.2.x升级到CI 3.0.x核心文件问题
CI 2.2.x upgrade to CI 3.0.x core files issues
我刚刚按照 upgrade guide 的 CI2 到 CI3 进行操作,到目前为止没有遇到任何其他问题。可能会得到一些,因为我转换的项目仍然使用 DataMapper 并且有一些其他挂钩和第三方工具。
所以到目前为止我遇到的第一个问题是我的自定义核心控制器不再工作了。
例如,我将此深度用于我的前端和后端逻辑:
- CI_Controller > MY_Controller > CronController
- CI_Controller > MY_Controller > 前端控制器
- CI_Controller > MY_Controller > AdminController
CI3 告诉我,我的 controllers/Account.php
控制器不知道 FrontendController
class。
我可以告诉 CI3 仍然包含我的自定义 classes 还是有新的方法?
如果您使用 __autoload(){$class}
自动加载核心 类,您应该将其更改为 spl_autoload_register(function ($class){}
。即:
spl_autoload_register(function ($class) {
if (substr($class,0,3) !== 'CI_') {
if (file_exists($file = APPPATH . 'core/' . $class . EXT)) {
include $file;
}
}
});
我刚刚按照 upgrade guide 的 CI2 到 CI3 进行操作,到目前为止没有遇到任何其他问题。可能会得到一些,因为我转换的项目仍然使用 DataMapper 并且有一些其他挂钩和第三方工具。
所以到目前为止我遇到的第一个问题是我的自定义核心控制器不再工作了。
例如,我将此深度用于我的前端和后端逻辑:
- CI_Controller > MY_Controller > CronController
- CI_Controller > MY_Controller > 前端控制器
- CI_Controller > MY_Controller > AdminController
CI3 告诉我,我的 controllers/Account.php
控制器不知道 FrontendController
class。
我可以告诉 CI3 仍然包含我的自定义 classes 还是有新的方法?
如果您使用 __autoload(){$class}
自动加载核心 类,您应该将其更改为 spl_autoload_register(function ($class){}
。即:
spl_autoload_register(function ($class) {
if (substr($class,0,3) !== 'CI_') {
if (file_exists($file = APPPATH . 'core/' . $class . EXT)) {
include $file;
}
}
});