使用应用程序上下文的API实现 - Phalcon

时间:2016-06-08 01:48:14

标签: php phalcon

我在理解如何使用Application类型对象而不是Micro在单独的目录中实现API时遇到了一些困难。

目前我尝试实施:

$application->get('/api/robots', function () {

});

在我公开的index.php内,我创建的地方:

$application = new Application($di);    

echo $application->handle()->getContent();

它始终将其视为view controllers并要求controller。我尝试按照文档创建一个简单的RESTful API,最后我创建了一个名为api的单独文件夹,其中micro index.php(遵循教程中api微应用程序的确切布局)生活,但在一天结束时,我一直得到ApiController not found

我有点难过,任何澄清/简化都会非常有帮助!

以下是教程:https://docs.phalconphp.com/en/latest/reference/tutorial-rest.html

1 个答案:

答案 0 :(得分:0)

如果您希望使用Phalcon\Mvc\Application而不是Phalcon\Mvc\Micro,则可以像平常一样处理路由。

$router = new Phalcon\Mvc\Router();

// route for a GET request (controller: ApiController, action: requestAction)
$router->addGet('/api/request/{id}', [
    'controller' => 1,
    'action'     => 2,
]);

// route for a DELETE request (controller: ApiController, action: removeAction)
$router->addDelete('/api/remove/{id}', [
    'controller' => 1,
    'action'     => 2,
]);

// this works the same for 
// $router->addPut(...) and $router->addPost(...)

// other normal route
$router->add('/([a-zA-Z\-]+)/([a-zA-Z\-]+)/:params', [
    'controller' => 1,
    'action'     => 2,
    'params'     => 3
]);