ほんの数日前に Symfony 2 を使い始めました。私は現在、市場調査を目的としたツールに取り組んでいます。このツールは複数のモジュールで構成されており、それぞれが Symfony プロジェクトのバンドルになっています。もちろん、これらのモジュールをすべて 1 つのバンドルにすることもできますが、バグの修正や新しいモジュールの改善と追加のプロセスを容易にするために、コードをできるだけ保守しやすくすることが目的です。
したがって、基本的に私のフォルダー構造は次のようになります。
AppBundle -> Controller -> 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 Internal Server Error」を返しました。何かが壊れています。このエラーが発生したときに何をしていたかをお知らせください。できるだけ早く修正いたします。不便をかけてごめんなさい。
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"));
}
}
なぜうまくいかないのか、本当に頭を悩ませています。皆さんが私を助けてくれることを本当に願っています。:)