AbstractRestfulController和AbstractActionController有什么区别?

时间:2015-12-30 15:36:59

标签: php zend-framework2

使用AbstractRestfulController而不是AbstractActionController实现控制器类的实际观点有何不同? AbstractRestfulController只允许RESTful行为吗?某处有并排比较吗?

1 个答案:

答案 0 :(得分:3)

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