deader 发表于 2009-4-13 22:30:51

请教!如何扩展Controller

本帖最后由 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错误,不知道怎么解了.

Hex 发表于 2009-4-14 00:01:58

你的写法不标准,请参考 http://codeigniter.org.cn/user_guide/general/core_classes.html

deader 发表于 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错误,或者是空白页面。搞不明白了。

Hex 发表于 2009-4-14 10:18:16

MY_ 这是在 config.php 中定义的子类化前缀,你可以修改,但推荐你保留 MY_ 这个前缀。
使用框架就要遵守框架的一些约定,这样有利于团队开发。

deader 发表于 2009-4-14 11:00:18

感谢,已经找到更好的办法解决了

feishangygw 发表于 2009-4-14 13:19:26

约定优于配置

visvoy 发表于 2009-4-16 17:11:16

用 eval 可以扩展 Controller ,而且程序仍然继承 Controller (被扩展之后的)

deader 发表于 2009-4-17 11:52:32


感谢大家
页: [1]
查看完整版本: 请教!如何扩展Controller