WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

blogチュートリアル 基本(4) バンドルの作成

この記事は約2分43秒で読めます

Symfony2 blogチュートリアル 04 バンドルの作成
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

Symfony2のブログチュートリアルの第4回目です。
今回はいよいよバンドル(Bundle)を作成します。

フレームワーク本体やあなたが作るアプリケーションまでSymfonyはすべてバンドルで構成されています。

Symfony2 blogチュートリアル

日本Symfonyユーザー会さんのblogチュートリアルに沿って、進めていきたいと思います。

* リンクなしの記事はまだ書いてません。追々書きます。この記事をシェアしてくれたらモチベーションあがります!

* まだ書いてない記事は気分によって順番が前後する場合もあります。


動作環境

Mac環境

  • Mac: OS X EI Capitan 10.11.1
  • PHP: 5.6.10
  • MySQL: 5.6.13
  • Apache: 2.4.16
  • MAMP: 3.4
  • Symfony: 2.7.6

Windows環境

  • Windows: 7 Professional
  • PHP: 5.5.9
  • MySQL: 5.6.16
  • Apache: 2.4.7
  • Symfony: 2.7.6

さくらのVPS(CentOS)環境

CentOSはMacと同じコマンドで確認できました。

  • CentOS: 7.1.1503
  • PHP: 7.0.0RC7
  • MySQL: 5.6.27
  • Nginx: 1.6.3
  • Symfony: 2.7.6

バンドルを作る

まずはバンドルを作らないと何も始まらないのでバンドル生成コマンドを使ってバンドルを作ります。
コマンドを入力すると質問されますが、基本的にすべて空Enterでokです。

バンドルの命名は{ベンダー名}/{バンドル名}Bundleとするのが一般的なようです。
公式のformat指定はymlですが、私はannotationをformat指定して作成します。

ymlをformat指定すると設定ファイル(yml)を別に管理する必要があるため、手間が1つ増えます。
annotationをformat指定すれば1つのファイルでルーティング指定が行えるので楽です。

質問は[]内がデフォルトで選択されます。

質問内容について

作成したバンドルをSymfonyに登録する

作成したバンドルを使用するには…

「Kernelに追加」「ルーティングに追加」「名前空間に追加」が必要です。

ただ、コマンドからバンドル生成時は自動的に追加してくれますので
特に何かすることはないです。

Kernelに追加

app/AppKernel.phpをを開いてください。

ルーティングに追加

app/config/routing.ymlを開いてください。

名前空間に追加

Symfony2初めての人は何やってるかわからないと思うので、コントローラの各行を軽く解説したいと思います。

名前空間の宣言

ここでは名前空間の宣言をしてます。
これにより、DefaultControllerクラスがApp\BlogBundle\Controllerの配下になります。

コントローラーのインポート

Symfony2でアプリケーションを作る場合、
各コントローラーはSymfony\Bundle\FrameworkBundle\Controller\Controllerクラスを継承して作ります。

ルート設定のインポート

* @Route("/hello/{name}")ここでアノテーションを使ってルーティングを指定できるようになっています。

テンプレート設定のインポート

* @Template()ここで表示したいテンプレートを指定できます。

テンプレートの指定がない場合はResources/views/{クラス名}/{関数名}.html.twigが表示されます。

クラス宣言

Symfony\Bundle\FrameworkBundle\Controller\Controllerクラスを継承して
DefaultControllerクラスを作成してます。

関数宣言

@Route{name}の値を引数として受け取っています。
受け取った値をそのままreturnindex.html.twigに返してます。

実際にブラウザからバンドルにアクセスしてみる

それではDefaultControllerindexAction()にブラウザからアクセスしてみます。

http://localhost/blog/web/app_dev.php/hello/world

上記のようにアクセスして「Hello world!」という文言が表示されればokです。
worldの部分は好きな文字列で構わないです。

バンドルを削除したい場合

app/AppKernel.php
app/config/routing.yml

上記のファイルからAppBlogBundleの項目を削除してください。

/Applications/MAMP/htdocs/blog/src/App/BlogBundle

上記のディレクトリを削除してください。

参考サイト

以上、blogチュートリアル 基本(4) バンドルの作成でした。

Symfony2,PHP オススメ書籍

関連記事

  1. symfony2
  2. Twigロゴ
  3. symfony2
  4. Symfony2 blogチュートリアル 05 バンドルのディレクトリ構造
  5. symfony2
  6. symfony2

コメントをお待ちしております

PR

カテゴリー