我想知道是否有可能在PHP中有一个返回接口或包含接口的类的函数?
我试过这样的事情但是失败了
<?php
//class for list of controllers for ACL
class Gestionale_Action_Helper_Crud extends Zend_Controller_Action_Helper_Abstract {
interface crud_controller
{
public function indexAction();
public function modificaAction();
public function cancellaAction();
public function creaAction();
}
public function getCrudInterface(){
return $this->crud_controller;
}
}
我想做什么,在zend框架中,创建一个crud控制器必须实现的接口,或者甚至更好,如果我可以创建一个抽象控制器并让它们实现
谢谢
答案 0 :(得分:2)
我建议您使用Zend_Rest_Controller
而不是创建自己的界面。
Zend_Rest_Controller
是一个抽象类,它定义了CRUD控制器中需要的五种基本方法:index
,get
,post
,put
和delete
。
结合Zend_Rest_Route
,它可以让您创建漂亮而干净的RESTful应用程序。
您可以在http://weierophinney.net/matthew/archives/228-Building-RESTful-Services-with-Zend-Framework.html和http://techchorus.net/create-restful-applications-using-zend-framework
的Zend_Rest_Controller
上获得更多阅读
答案 1 :(得分:1)
只需将界面放在任何类之外(最好放在不同的文件中),然后让所有的crud-controller实现它。
<?php
class GrudController implements CrudInterface
{
// ...
}
答案 2 :(得分:-1)
我不确定自己能得到什么,但我相当肯定你问的是错误的问题。如果你只是想确保一个对象实现某个接口,这很容易做到。比方说,例如你在一个处理crud控制器的类中有一些辅助方法,你只需在参数列表中指定类型:
class crud_helper {
public function help(crud_controller $cc) {
$cc->indexAction();
}
}
现在您可以将任何实现crud_controller的类实例的对象传递给方法帮助。但没有其他对象。