第2回Symfony2勉強会の Part 1 を振り返ってみたら思いのほか大変だった。

第2回 Symfony2勉強会 (1/15)に参加いたしました。

関係各位方々、当日はありがとうございました!Zynga Japanの皆様も会場ありがとうございました。
ほんの少しではございますが、当日やったことをまとめてみたいと思います。

環境構築

こちらのページ等を参考に、環境設定をしておきます。

jiskaのメモ書き symfony2をローカルで動作させる環境をサクッと作る
秋元 Windows+XamppでSymfony2開発環境を作る

第2回Symfony2勉強会のシナリオを参考に進めます。


こちら に上記の Part 2 までのファイルがあるようです。ご参考願います。

Part 1 のおさらい

Part 1 の内容は押さえていますが順不同です。申し訳ありません。

1. サンドボックス配置から動作確認まで

Symfony2サンドボックスからファイルを取得し、
サンドボックスを配置し、動作確認までします。

2. バンドル登録

サンドボックスフォルダ直下にて下記コマンドを入力しバンドルを作成します。
バンドル名は任意ですが、最後は必ず、Bundle で終わるようにしてください。

php app/console init:bundle Application\\BlogBundle


src/Application 直下に BlogBundle が出来上がります。
このバンドルが動作するようにバンドルの登録と、app/config/routing.yml の設定をします。

2.1. バンドルの登録

app/AppKernel.php

// register your bundles

の記述の下に下記を追記します。

new Application\BlogBundle\BlogBundle(),
2.2. app/config/routing.yml の設定。

app/config/routing.yml の末尾に下記を追記してください。
blog: はファイル内で重複しないようなものにしてください。

blog:
  resource: BlogBundle/Resources/config/routing.yml

3. DB(MySQL)の設定

app/config/config.yml の doctrine.dbal と doctrine.orm の
コメントを外し、それぞれ設定します。

doctrine.dbal:
    driver:   PDOMySql
    dbname:   (お好みのDB名)
    user:     (おそらくDB作成権限保有ユーザ)
    password: (上記ユーザのパスワード)

doctrine.orm:
    auto_generate_proxy_classes: %kernel.debug%
    mappings:
        BlogBundle: ~

BlogBundle は今回作成したバンドル名を指定してください。


バンドル名は、上記で実行した下記のコマンドの BlogBundle の部分。

php app/console init:bundle Application\\BlogBundle


上記で設定したお好みの DB名は次のコマンドで生成することができます。
登録してみましょう!

php app/console doctrine:database:create

4. テーブルおよびEntity(モデル)登録

BlogBundle 直下に Entiry フォルダを作成し、こちらの Article.phpのファイルを配置してください。


次に下記コマンドを実行すると先ほど作成した DB にテーブルが作成されます。

php app/console doctrine:schema:create


上記 Article.php のファイルを見てみると、特徴的なコメントが見受けられると思います。
これがじつは肝で、Symfony2 に入っている Doctrine2 がこのコメントを読み取り、
テーブルを作成することができています。
詳しくは下記を参照願います。

参考:株式会社エクスギア Doctrine2を試してみる(2) アノテーション

5. コマンドによるサンプルデータの登録

BlogBundle 直下に Command フォルダを作成し、こちらの CreateArticleCommand.phpのファイルを配置してください。


配置したら実行してみましょう!php app/console を実行してみると

blogbundle
  :create-article

が追加されていると思います。ディレクトリ/フォルダを作成しただけでコマンドが増えました。
素晴らしいですね!実行してみましょう。

php app/console blogbundle:create-article

テーブルのデータを確認すると確かにデータが登録されているかと思います。

コマンドについては下記を参照願います。

参考ページを募集中 :)_

X. 終わりに

これだけでも記事を作成するのは気力が入りますね。
追記、修正箇所等ございましたらお気軽に [twitter:@JP_tomo] までご連絡お願いいたします。


Part 1 のみではございますが、最後までお付き合いくださいましてありがとうございました。
Part 2 , Part 3 は誰か助けてください! :)
では、いつかどこかで。


以上