手册 >> 访问交互 >> 提示“控制器类与数据模型类重名”?

提示“控制器类与数据模型类重名”?

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

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

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

<?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类。

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

这里的命名规则,是“建议使用”,并非“强制使用”。我们知道许多的开发团队都有自己的命名规则,所以SpeedPHP中几乎是没有规定任何的命名规则,让大家可以按照自己喜欢的规则来开发。

比如说上例中的model的guestbook类,改名为lib_guestbook(文件名改成lib_guestbook.php,对应类名),那么问题就解决了。

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