• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Symfony2#5 LT
 

Symfony2#5 LT

on

  • 774 views

MongoDBBundle

MongoDBBundle

Statistics

Views

Total Views
774
Views on SlideShare
774
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Symfony2#5 LT Symfony2#5 LT Presentation Transcript

    • これから始めるDoctrineMongoDBBundle の使い方 Symfony2勉強会 #5
    • 自己紹介● 小泉 正人● 映画向け映像加工アプリのプロダクトマネー ジャ● Symfony2歴 3ヶ月くらい● MongoDB歴 3ヶ月くらい● PHP たしなむ程度● twitter.com/hamichamp● http://on.fb.me/koizumimasato
    • 対象となる方● これからMongoDBをSymfony2で使ってみたい と思っている方。● 実践的な内容じゃなくてごめんなさい。● 個人的に苦労した部分をちょっぴり共有しま す。
    • 試した環境● MacOS X Lion● PHP バージョン5.3.6● MongoDB バージョン2.0● Symfony2 バージョン2.0.6● DoctrineMongoDBBundle バージョン2.0.0
    • 環境構築● MongoDBのインストールとか● php.iniの設定とか ● 探せばいっぱい出てくるので省略。● DoctrineMongoDBBundleのインストール ● 基本的には、公式ページの補足です。 ● http://symfony.com/doc/current/bundles/ DoctrineMongoDBBundle/index.htm ● これから説明します。
    • インストール● depsファイルの編集● インストールコマンド ● gitが必要です
    • 注意● 公式ページは書いてないけど、githubではこっそ りバージョンが指定されている!● 2.0ブランチかv2.0.0を使う ● version=origin/2.0 ● version=v2.0.0 (今回はこちらを使用)
    • その他の設定● app/autoload.php● app/AppKernel.php ● 公式ドキュメントのままなので省略
    • Documentの作成● マッピング方法は3種類 ● Annotations ● YAML ● XML● マッピングしたら、doctrineで生成 php app/console doctrine:mongodb:generate:documents [-- document[=”...”]] bundle
    • Annotationsの場合 ● Documentフォルダ ● コメントで指定 ● @MongoDBを付ける ● doctrineがset/getを自 動生成 ● 注意 ● 上書きされます ● .php~にリネーム
    • YAMLの場合 ● Resource/config/doctr ineフォルダ ● クラス.mongodb.yml という命名法則らし い ● doctrineがクラスファ イルを生成
    • XMLの場合● YAMLと記述方式以外は同じみたいなので省略
    • YAMLとXMLの注意● 記述的には出力先は自由に指定出来そうだけ ど・・・ ● Documentフォルダでないとダメみたい。 ● DoctrineでExceptionが発生 ● Notice: Undefined index: ● vendor/doctrine-mongodb- odm/lib/Doctrine/ODM/MongoDB/Mapping/Dr iver/AbstractFileDriver.php line 116
    • YAMLとXMLの注意● 新しいDocumentを変換する際にException ● Warning: class_parents() ● vendor/doctrine-mongodb- odm/lib/Doctrine/ODM/MongoDB/Mapping/Cl assMetadataFactory.php line 336 ● もう一度、Doctrineを実行するとうまくいく ● 他のバージョンで直っているかもしれません が、今回は未確認です。
    • 定義の優先順位● XML、YAML、Annotationsの順番っぽい ● XMLファイルがあると、YAMLとAnnotations は無視 ● YAMLファイルがあると、Annotationsは無視 ● 基本的には、どれか一種類で記述すると思う ので、あんまり気にしなくてもいいのかな?
    • 簡単な使い方● 保存とか● 検索とか● 更新とか● 削除とか ● 公式ページを見てみてください。
    • まとめ● 保存 ●$dm->persist($product)● 検索 ●$dm->getRepository(AcmeStore:Product)->find()● 更新 ● 検索で取得したオブジェクトを操作● 削除 ● $dm->remove($project)● DBに結果を反映するには、$dm->flush()
    • 省略● バリデーションとか ● 基本的に同じです。● Embedded Mappingとか● Reference Mappingとか ● http://www.doctrine- project.org/docs/mongodb_odm/1.0/en/index. html ● 但し、サンプルには@MongoDBがついてい ないので、追記してください。
    • おしまいだけど・・・
    • おまけ
    • エンティティフィールド● 選択肢を選ぶタイプ ● selectタグとか● DBからデータを参照したい● Entityを利用した方法は公式に書いてある ● http://symfony.com/doc/current/reference/for ms/types/entity.html
    • MongoDBではどうするの?
    • ありがとうございました