各モジュールに対して真のバンドル アプローチを実行する場合、実行しようとしているものを達成する最も簡単な方法は、属性ベースのルーティングで JMS Security-Extra バンドルを使用することです。
composer.json ファイルに、次を追加します: "require": { ... "jms/security-extra-bundle": "1.5.*",
コンポーザーファイルを次のように更新します
php composer.phar update
次に、BundleName/Resources/config/routing.yml ファイルで次のようにします。
some_name:
type: annotation
resource: "@SomeBundle/Controller"
最後に、コントローラーの各アクションを @Route 属性で装飾します。
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
/**
* @Route("/SomeBundle/SomeController")
*/
class SomeController extends Controller {
/**
* @Route("someAction", name="myAction")
* @Method("GET") OR
* @Method({"GET", "POST"})
*/
public function someAction() {
}
}
JMS バンドルのその他の属性のいくつかも、非常に便利です。たとえば、私は自分のアクションで @Template 属性をかなり使用しています。これは、次のことを行う必要がなくなったことを意味します。
public function recentListAction() {
...
return $this->render(
'AcmeArticleBundle:Article:recentList.html.twig',
array('articles' => $articles)
);
}
私は簡単に行うことができます:
/**
* @Route("/Articles/List")
* @Template()
*/
public function recentListAction() {
...
return array('articles' => $articles);
}
Resources/views/ControllerName/recentList.html.twig ファイルがある限り、すべてが自動的に織り込まれます。