Php 使用Zend_REST_控制器提供REST API访问时正确的代码结构
我不熟悉Zend框架和MVC类型的编程(但不是PHP),我正在尝试使用Zend框架提供对服务器上数据的API访问 我以Chris Danielson的文章()为基础 我希望提供以下格式的数据访问:Php 使用Zend_REST_控制器提供REST API访问时正确的代码结构,php,web-services,zend-framework,zend-rest,Php,Web Services,Zend Framework,Zend Rest,我不熟悉Zend框架和MVC类型的编程(但不是PHP),我正在尝试使用Zend框架提供对服务器上数据的API访问 我以Chris Danielson的文章()为基础 我希望提供以下格式的数据访问: (a) http://www.example.com/api/createevent Data will be POSTed here, success will return an id, otherwise an error message/code (b) htt
(a) http://www.example.com/api/createevent
Data will be POSTed here, success will return an id, otherwise an
error message/code
(b) http://www.example.com/api/geteventdetails/1234
GET request will return data
(c) http://www.example.com/api/getregistrationdetails/1234
GET request will return data
(d) http://www.example.com/api/getregistrationdetails/1234/567
GET request will return data
问题:
我在ZF中使用了很多routes,但在Rest实现中没有使用,在文档和您链接到的教程中,我会尽全力帮助您 这可能是值得一看的文件为(约1/3页下来)-它解释说,它将自动为您创建路由的基础上的方法的要求;因此,不需要createevent、geteventdetails等的命名格式 问题1. 而不是创建文件 \api\application\Controller\GeteventdetailsController.php 我会创建这个文件 \api\application\Controller\EventsController.php 这将是一个控制器来处理所有事件操作,包括获取、发布、放置等。您的建议对于控制器来说太具体了,因为获取、放置等将在操作级别处理 问题2. 文档中描述的路线显示,最终参数(:id)将分配给控制器中名为
id
的参数
因此,使用GET访问URL/events/将调用eventscoontroller.php
文件中的indexAction()
使用GET访问URL/events/99/将调用eventscoontroller.php
文件中的getAction()
。您可以像这样从控制器访问此id
$id = $this->getRequest()->getParam("id");
或
然后,您应该编写代码来查询数据库中的事件列表或特定id
问题3.
您应该为数据库表和行创建模型,而不是将查询数据库事件的代码放入控制器中。我建议使用ZF中的现有设置来实现这一点。这将确保您的应用程序/网站是MVC
将代码放入控制器可能会阻碍以后的开发,例如,当您稍后在另一个控制器中为事件编写注册表单时。创建事件的逻辑将被复制,一次在新控制器中,一次在Rest控制器中。您最好将此逻辑集中到一个用于操作和查询事件的模型中
我希望这有帮助 谢谢大家!!这确实澄清了很多事情。我仍然对如何在一个控制器内处理不同的请求,以便同时处理诸如和之类的请求感到困惑。。。我已经选择使用不同的控制器暂时,并将复古适合他们以后如有必要。
$id = $this->getRequest()->id;