我正在尝试关注CodeIgniter的一些教程,特别是关于扩展控制器的教程,我正在遵循的教程说在MY_Controller文件中我应该放置以下内容:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends Controller
{
function __construct()
{
parent::__construct();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我收到以下错误:
致命错误:第3行/home/chimeri1/public_html/application/libraries/MY_Controller.php中未找到类"控制器"
但是,如果我把它CI_Cntroller而不是Controller它的工作.差异是什么?
也应该将关闭的php标记?>添加到MY_Controller文件的底部,一些教程会错过这个吗?
提前致谢.
Wes*_*rch 21
在2之前的任何版本中,Controller是基本控制器类(您将使用MY_Controller扩展).在版本2及更高版本中,您需要扩展,CI_Controller因为这是基本控制器类的新名称.
对于遇到此问题的其他人,CI2将几个类文件/libraries从新/core目录移动到新目录.如果您查看一下system/core,您看到的每个类现在都使用CI_前缀 - 包括Model(现在为CI_Model),Input,Loader,Lang等等.如果需要重载或扩展这些库,它们现在需要位于application/core目录中.您仍然会使用MY_前缀来扩展它们,或者您在其中设置的任何内容$config['subclass_prefix'].
随着版本2的发布,CI分为两个分支:Core和Reactor.不要混淆 - 它们都是CodeIgniter,但对"Reactor"的任何引用都是当前社区驱动的版本,它是作为网站上的主要下载提供的,而Core是较旧的EllisLabs版本,具有较少的功能.来自CI网站:
"简单地说,Reactor = CodeIgniter".
您可以在此处阅读有关分支更改的更多信息.
从1.7.2升级到2.X很容易.与往常一样,确保在更新到新版本时阅读更改日志和升级说明.
至于结束标记:它是可选的,但你应该尽可能避免它,因为它可以为脚本引入空格(在结束标记之后的任何内容),这可能会弄乱标题并出现在输出中.如您所知,用户指南建议您不要使用它.
在CodeIgniter 2.x中,Controller类已重命名为CI_Controller.您正在使用的教程很可能使用CodeIgniter 1.7或更早版本,这Controller是正确的扩展类.
关于结束?>标记,CodeIgniter样式指南建议省略它,因为该标记之后的意外空格可能有问题.
| 归档时间: |
|
| 查看次数: |
17936 次 |
| 最近记录: |