0

ほんの数日前に 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"));
}

}

なぜうまくいかないのか、本当に頭を悩ませています。皆さんが私を助けてくれることを本当に願っています。:)

4

1 に答える 1

1

よし、正式に私をバカと呼んでもいい。:) コードを改良した後、サーバーを少しクリーンアップすることにしました。その一部は、プロジェクトがあったディレクトリの名前を変更し、apache2 vhost 構成を調整することでした。ただし、 PHPStormの展開設定は調整しませんでした。つまり、行った変更はすべて古いフォルダー (PHPStorm が再度作成したフォルダー) に保存されます。したがって、最近名前が変更されたフォルダはそのままでした。くそ。それはすべてソートされ、現在機能しています。再度、感謝します。:)

于 2014-12-18T15:59:09.533 に答える