Php Symfony2放置类的首选目录

Php Symfony2放置类的首选目录,php,ajax,symfony,Php,Ajax,Symfony,我是Symfony2的新手,我只是想知道做这件事的首选方法是什么 我有很多管理动作,包括接收表单数据和处理表单数据。当然,当处理完成时,控制器操作发送return$this->redirect($this->generateUrl(“…”) 现在,由于我制作了一个JavaScript,如果浏览器支持它,它可以通过ajax提交表单,所以我需要修改我的控制器操作,以返回包含json数组的Response对象,但前提是请求是通过ajax发送的 是否可以识别发送到控制器的请求是否是AJAX请求 其中目录

我是Symfony2的新手,我只是想知道做这件事的首选方法是什么

我有很多管理动作,包括接收表单数据和处理表单数据。当然,当处理完成时,控制器操作发送
return$this->redirect($this->generateUrl(“…”)

现在,由于我制作了一个JavaScript,如果浏览器支持它,它可以通过ajax提交表单,所以我需要修改我的控制器操作,以返回包含json数组的
Response
对象,但前提是请求是通过ajax发送的

  • 是否可以识别发送到控制器的请求是否是AJAX请求

  • 其中目录树中是名为
    ResponseHandler
    的首选位置到位置类,它将根据请求类型重定向或返回json数组?我意识到Symfony2对这些事情非常严格,所以我想从一开始就做好。也许已经有了捆绑解决方案

  • 更新

    我发现我可以在控制器中使用$this->getRequest->isXmlHttpRequest()

    问题2仍然存在

    目录树中的哪个位置是名为ResponseHandler的首选位置对位置类,它将根据请求类型重定向或返回json数组

    如果执行AJAX请求,则将数据存储在参数、POST或GET参数中。您可以通过以下方式在控制器中访问此参数:

    /。。。
    公共函数finishAction()
    {
    //如果您使用GET请求
    $data=$this->getRequest->query->get('my-get-parameter');
    //如果你使用POST请求
    $data=$this->getRequest->request->get('my-get-parameter');
    //…对数据做些什么
    }
    
    但是要回答您的问题:
    symfony核心框架使用事件调度器组件来触发和附加事件。这些事件在Symfony代码中的任何位置都会触发。您可以将类附加到事件,并在触发该事件时对其进行更改。这样,就可以修改
    响应
    对象

    代码中抛出的事件可以在该组件的
    *Events
    类中找到。在这种情况下,我们需要事件。阅读文档中有关事件调度器以及如何附加事件的更多信息:和

    我意识到Symfony2对这些事情非常严格

    Symfony对您的目录结构并不严格。它提供了一个带有推荐结构的默认标准版本,但您可以更改它使其成为您的。如果一个类是用PSR-0标准编写的,symfony将加载您需要的所有类