我在理解如何使用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
答案 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
]);