AbstractRestfulController 和 AbstractActionController 有什么区别?

What is the difference between AbstractRestfulController and AbstractActionController?

从实用的角度来看,使用 AbstractRestfulController 而不是 AbstractActionController 来实现控制器有什么区别 类? AbstractRestfulController 是否只允许 RESTful 行为?有什么地方并排比较吗?

ZF2 的 AbstractRestfulController 提供了一个接口,可以快速轻松地实现基本 HTTP 方法(例如 GET、POST、PUT、DELETE),同时仍然允许使用控制器操作。 AbstractActionController 用于控制器操作。

首先,无论在该特定控制器中实现了多少本机 HTTP 方法,都只需要一个路由。下面是一个路由配置示例:

'api_customer' => [
    'type' => 'Segment',
    'options' => [
        'route' => '/customer/:id',
        'constraints' => [
            'id' => '[0-9]+',
        ],
        'defaults' => [
            '__NAMESPACE__' => 'Customer\Controller',
            'controller' => 'Index',
        ],
    ],
],

最后,控制器的实现相当简单(应该有点熟悉)。

<?php
class CustomerController extends AbstractRestfulController
{
    public function get($id)
    {
        // associated with GET request with identifier
    }

    public function getList()
    {
        // associated with GET request without identifier
    }

    public function create($data)
    {
        // associated with POST request
    }

    public function update($id, $data)
    {
        // associated with PUT request
    }

    public function delete($id)
    {
        // associated with DELETE request
    }
}

有关更多信息,我建议快速查看手册。 http://framework.zend.com/manual/current/en/modules/zend.mvc.controllers.html#the-abstractrestfulcontroller