1.0.1 2013-05-28 23:02 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:59:49 UTC


README

Zeus 的主要目的是帮助您轻松创建面向 RESTful 控制器的分层路由。

Zeus 的初始代码库是由 @weierophinney 在他的博客上的一系列文章中创建的,博客地址为 http://mwop.net/blog

让我把功劳归功于应得的人

  • 使用 Zend Framework 构建 RESTful 服务 1
  • 在 RESTful ZF 应用中响应不同的上下文类型 2

为什么选择 Zeus?

对于 Zend Framework 来说,有如此多的不同 RESTful 实现,为什么还要创建另一个呢?

大多数 Zend Framework RESTful 实现都要求您使用 Zend_Rest_Route。默认情况下,Zend_Rest_Route 创建以下路由

  /product/ratings/  
  /product/ratings/:id  

我认为这种路由在 RESTful 设置中很模糊。:id 是指产品还是评分?我更希望看到这样的路由

  /products/:id  
  /products/:id/ratings  

这正是 Zeus 允许您做到的。

好处

即将推出...

使用 Zeus

设置 Zeus

将这些行添加到您的 application.ini 文件中

初始化

  autoloaderNamespaces[] = Zeus_  
  
  pluginPaths.Zeus_Application_Resource = "Zeus/Application/Resource"  
  pluginPaths.Zeus_Controller_Plugin = "Zeus/Controller/Plugin"  

配置

  resources.zeus[] =  

RESTful 路由

您可以通过两种方式创建 RESTful 路由

使用 PHP

  $route = new Zeus_Rest_Route(  
      'products/:id/ratings',  
      array(  
          'module' => 'products',  
          'controller' => 'ratings',  
          'action' => 'index',  
          'id' => '',  
      )  
  );  

使用 .ini 文件

  routes.productRatings.type = "Zeus_Rest_Route"  
  routes.productRatings.route = "products/:id/ratings"  
  routes.productRatings.defaults.module = "products"  
  routes.productRatings.defaults.controller = "ratings"  
  routes.productRatings.defaults.action = "index"  

RESTful 控制器

为了使用 Zeus,您的控制器必须至少实现 Zeus_Rest_Controller。您可以通过以下几种方式实现

如果您希望整个应用程序都是 RESTful,最简单的方法是让所有控制器扩展 Zeus_Rest_RestfulController

  class YourController extends Zeus_Rest_RestfulController 
  {
  
  }

Zeus_Rest_RestfulController 将要求所有控制器具有以下方法:index、get、post、put 和 delete。

如果您只想让某些控制器是 RESTful 的,并允许其他控制器不是 RESTful,则可以将 RESTful 控制器扩展为 Zeus_Rest_BaseController 并实现 Zeus_Rest_Controller

  class YourRestfulController 
      extends Zeus_Rest_BaseController 
      implements Zeus_Rest_Controller
  {
  
  }
  
  class YourRegularController
      extends Zend_Controller_Action
  {
  
  }

RESTful 视图

即将推出...