Symfony 2 - 在捆绑之间导航

时间:2014-12-18 08:59:56

标签: php symfony bundles

我几天前就开始使用Symfony 2了。我目前正在研究用于市场研究目的的工具。该工具应该由多个模块组成,每个模块都是Symfony项目中的一个包。我当然可以将这些模块全部放在一个包中,但我们的想法是尽可能保持代码的可维护性,以便简化修复错误或改进和添加新模块的过程。

所以基本上我的文件夹结构是这样的:

AppBundle - >控制器 - > DefaultController:在初始加载站点时使用。除了返回位于我的前端包中的渲染的Twig模板之外,它不会做任何事情。

公司       |       | __> AdministrationBundle:这应该是管理后端,可以在其中配置模块,添加或编辑用户等等。

  |
  |__> FrontendBundle: this is the core bundle so to say. It contains the basic Twig template, which is used to render the general site structure and navigation

  |
  |__> Module_1_Bundle: that's the first module which is supposed to being navigated to basic Twig template generated in the frontend controller

  |
  |__> Module_2_Bundle: same as module 1.

前端正确呈现,没有问题。但是一旦我尝试导航到模块1或模块2(我还没有开始使用管理包),我所得到的只是

  

糟糕!发生错误   服务器返回“500内部服务器错误”。   有些东西坏了。发生此错误时,请告诉我们您在做什么。我们会尽快修复它。给您造成的任何不便,请原谅。

Apache错误日志中没有任何内容,也没有Symfony日志中的任何内容,我几乎没有想到那里发生了什么。我已经在app / config / routing.yml中配置了模块的初始路由,如下所示:

app:
  resource: @AppBundle/Controller
  type:     annotation

company_frontend:
  resource:  "@CompanyFrontendBundle/Resources/config/routing.yml"

company_backend:
   resource: "@CompanyAdministrationBundle/Resources/config/routing.yml"

company_module_1:
   resource: "@CompanyModule_1_Bundle/Resources/config/routing.yml"

company_module_2:
   resource: "@CompanyModule_2_Bundle/Resources/config/routing.yml"

然后每个routing.yml包含相应模块所需的路由,基本上就是这样(例如company / Module_1_Bundle / Resources / config / routing.yml):

company_module_1:
    path:     /module1
    defaults: { _controller: CompanyModule_1_Bundle:Module1:index }

使用相应的Module1Controller:

<?php

 namespace Company\Module_1_Bundle\Controller;

 use Symfony\Bundle\FrameworkBundle\Controller\Controller;

 class Module1Controller extends Controller
 {
     public function indexAction()
     {
         return $this->render('CompanyModule_1_Bundle:Default:index.html.twig', array("headerText" => "some Module 1 heading"));
}

}

我真的很不知道为什么它不起作用。我真的希望你们能帮助我。 :)

1 个答案:

答案 0 :(得分:1)

好吧,你可能正式称我为白痴。 :)在修改代码后,我决定稍微清理一下我的服务器。部分原因是重命名项目所在的目录并调整apache2 vhost配置。然而我没有调整的是PHPStorm中的部署设置,这意味着我所做的所有更改仍然转到旧文件夹(PHPStorm再次创建),因此我从未见过任何更改,因为最近重命名的文件夹中的文件保持不变。该死的。它现在全部排序和工作。再次感谢。 :)