在分离的目录/文件中处理AJAX请求


Handle AJAX requests in separated directory/files

我想移动我的所有方法从控制器,这是由AJAX请求执行,到单独的文件夹。例如,创建文件UserBundle/Ajax/Ajax.php,并在此文件中放入所有AJAX请求方法。

这是正确的方法,分开ajax请求,从正常的http请求?我找不到任何例子来做这件事。这在Symfony中是可能的?我必须在这个Ajax.php文件中扩展Symfony'Bundle'FrameworkBundle'Controller'Controller ?这将是好的,这将存在两个文件夹在包AjaxController,包含控制器,但首先为ajax请求和第二为正常的http请求?

你知道这个问题的架构模式吗?

我认为这样做没有任何问题,只需要确保正确定义路由路径:

注释路由示例:

# app/config/routing.yml
app_bundle:
    resource: "@AppBundle/Controller"
    type:     annotation
    prefix:   /
app_bundle_ajax:
    resource: "@AppBundle/Ajax"
    type:     annotation
    prefix:   /

我必须扩展Symfony'Bundle'FrameworkBundle'Controller'Controller在这个Ajax.php文件?

这不是强制性的,但Symfony'Bundle'FrameworkBundle'Controller'Controller为您提供了优秀的快捷方式,如$this->json(...);自Symfony 3.1

你可以创建简单的AjaxController作为接收ajax请求的服务。然后你可以将每个请求重定向到不同的控制器,它们将返回jsonresponses()。