用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3571|回复: 7
收起左侧

请教!如何扩展Controller

[复制链接]
发表于 2009-4-13 22:30:51 | 显示全部楼层 |阅读模式
本帖最后由 deader 于 2009-4-13 22:50 编辑

请教一个问题
我要实现一个类BasicController继承自Controller
然后其他的控制器类继承自BasicController
该怎么写?

我现在的做法是:basicContorller.php
<?php
class BasicController extends Controller
{
public $dir = '';
function Basiccontroller()
{
  parent::Controller();
  $this->dir = '/ok';
}
}

news.php
<?php
class News extends BasicController
{
function News()
{
  parent::Basiccontroller();
}

function index()
{
  echo 'ok';
}
}
//end

注:已经autoload 过了 basicController
但是访问......./news/index 的时候 显式500错误,不知道怎么解了.
发表于 2009-4-14 00:01:58 | 显示全部楼层
 楼主| 发表于 2009-4-14 09:52:18 | 显示全部楼层
看了http://codeigniter.org.cn/user_guide/general/core_classes.html
现在有两个问题:
1、写成MY_Controller没有问题,但是我要换一个名字就不行,该怎么办?

2、不保存为MY_的格式,假设直接保存为basicController.php,然后在autoload里load,但是我再 extends basicController...的时候,又是500错误,或者是空白页面。搞不明白了。
发表于 2009-4-14 10:18:16 | 显示全部楼层
MY_ 这是在 config.php 中定义的子类化前缀,你可以修改,但推荐你保留 MY_ 这个前缀。
使用框架就要遵守框架的一些约定,这样有利于团队开发。
 楼主| 发表于 2009-4-14 11:00:18 | 显示全部楼层
感谢,已经找到更好的办法解决了
发表于 2009-4-14 13:19:26 | 显示全部楼层
约定优于配置
发表于 2009-4-16 17:11:16 | 显示全部楼层
用 eval 可以扩展 Controller ,而且程序仍然继承 Controller (被扩展之后的)
 楼主| 发表于 2009-4-17 11:52:32 | 显示全部楼层

感谢大家

本版积分规则