#1 jake

在刚开始使用SpeedPHP的时候,有些朋友会遇到以下情况:

method-undefined[1].jpg

提示“请检查是否控制器类与数据模型类重名”?

这是因为在SpeedPHP中,没有限制控制器(controller)和模型(model)的命名规则,所以有时候,会产生控制器类和模型类重名的情况,比如说在控制器guestbook.php中:

class guestbook extends spController
{
        function index(){
                $gb = spClass('guestbook');
                $result = $gb->find(array('id'=>2));
                dump($result);
        }
}

就会出现该提示,问题出在:$gb = spClass('guestbook'); 开发者可能因为这个guestbook是model内的guestbook数据库模型类,其实不是。由于本身控制器guestbook就已经加载,所以spClass会直接使用当前的控制器guestbook,而不会去寻找model内的guestbook类。

解决的方法其实很简单,这里我们提供一个简单的命名规则给大家。


  • model内的数据库模型类,都加上前缀,比如说lib_,或者m_等等。
这里的命名规则,是“建议使用”,并非“强制使用”。我们知道许多的开发团队都有自己的命名规则,所以SpeedPHP中几乎是没有规定任何的命名规则,让大家可以按照自己喜欢的规则来开发。
比如说上例中的model的guestbook类,改名为lib_guestbook(文件名改成lib_guestbook.php,对应类名),那么问题就解决了。
class guestbook extends spController
{
        function index(){
                $gb = spClass('lib_guestbook');
                $result = $gb->find(array('id'=>2));
                dump($result);
        }
}

2012-08-04 13:35:32