thetwelvelabs / zeus
Zend Framework 1.x RESTful Bundle
Requires
- php: >=5.2.4
Requires (Dev)
- zendframework/zendframework1: 1.12.x
Suggests
- zendframework/zendframework1: This only works with Zend Framework 1.x
This package is not auto-updated.
Last update: 2024-09-14 12:59:49 UTC
README
Zeus 的主要目的是帮助您轻松创建面向 RESTful 控制器的分层路由。
Zeus 的初始代码库是由 @weierophinney 在他的博客上的一系列文章中创建的,博客地址为 http://mwop.net/blog
让我把功劳归功于应得的人
为什么选择 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 视图
即将推出...