Enviar pesquisa
Carregar
Doctrine2 odm-workshop-1
•
2 gostaram
•
1,864 visualizações
Hidenori Goto
Seguir
日本Symfonyユーザー会 第1回Symfony2勉強会 MongoDB ODMワークショップ基礎編
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 31
Baixar agora
Baixar para ler offline
Recomendados
Tremaとtrema edgeの違い
Tremaとtrema edgeの違い
hiroshi oshiba
できる!trema-switch
できる!trema-switch
Hiroaki Kawai
mrubyでETロボコンに出よう
mrubyでETロボコンに出よう
yamanekko
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
yamanekko
さくルビー.Net誕生
さくルビー.Net誕生
三七男 山本
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
Takuya Azumi
軽量言語(Lua, mruby)でGR-KURUMIを操作
軽量言語(Lua, mruby)でGR-KURUMIを操作
三七男 山本
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Masaya Konishi
Recomendados
Tremaとtrema edgeの違い
Tremaとtrema edgeの違い
hiroshi oshiba
できる!trema-switch
できる!trema-switch
Hiroaki Kawai
mrubyでETロボコンに出よう
mrubyでETロボコンに出よう
yamanekko
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
yamanekko
さくルビー.Net誕生
さくルビー.Net誕生
三七男 山本
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
Takuya Azumi
軽量言語(Lua, mruby)でGR-KURUMIを操作
軽量言語(Lua, mruby)でGR-KURUMIを操作
三七男 山本
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Masaya Konishi
ac-mozc (kansai-emacs #x09)
ac-mozc (kansai-emacs #x09)
igjit
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
Yusuke Ando
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)
Shintarou Okada
人間たちとsystemd
人間たちとsystemd
Uchio Kondo
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
jTthree V3 technical preview
jTthree V3 technical preview
Masaki Yamamoto
PNA3秒クッキング
PNA3秒クッキング
wizstargaer
Non blocking and asynchronous
Non blocking and asynchronous
Norio Kobota
async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
What webpage calls.
What webpage calls.
Naoaki Onozaki
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Kouhei Maeda
Preludeのprecompile
Preludeのprecompile
Glass_saga
これからの「async/await」の話をしよう
これからの「async/await」の話をしよう
Kouji Matsui
HTC Desireについて
HTC Desireについて
Hidenori Goto
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Hidenori Goto
Symfony tdd
Symfony tdd
Hidenori Goto
Tajimiit200905
Tajimiit200905
Hidenori Goto
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
Hidenori Goto
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Hidenori Goto
1 ioana creitaru pedrr workshop session 4
1 ioana creitaru pedrr workshop session 4
unuehs
Mais conteúdo relacionado
Mais procurados
ac-mozc (kansai-emacs #x09)
ac-mozc (kansai-emacs #x09)
igjit
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
Yusuke Ando
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)
Shintarou Okada
人間たちとsystemd
人間たちとsystemd
Uchio Kondo
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
jTthree V3 technical preview
jTthree V3 technical preview
Masaki Yamamoto
PNA3秒クッキング
PNA3秒クッキング
wizstargaer
Non blocking and asynchronous
Non blocking and asynchronous
Norio Kobota
async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
What webpage calls.
What webpage calls.
Naoaki Onozaki
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Kouhei Maeda
Preludeのprecompile
Preludeのprecompile
Glass_saga
これからの「async/await」の話をしよう
これからの「async/await」の話をしよう
Kouji Matsui
Mais procurados
(15)
ac-mozc (kansai-emacs #x09)
ac-mozc (kansai-emacs #x09)
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)
人間たちとsystemd
人間たちとsystemd
SignalRブートキャンプ
SignalRブートキャンプ
jTthree V3 technical preview
jTthree V3 technical preview
PNA3秒クッキング
PNA3秒クッキング
Non blocking and asynchronous
Non blocking and asynchronous
async/awaitダークサイド is 何
async/awaitダークサイド is 何
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
What webpage calls.
What webpage calls.
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Preludeのprecompile
Preludeのprecompile
これからの「async/await」の話をしよう
これからの「async/await」の話をしよう
Destaque
HTC Desireについて
HTC Desireについて
Hidenori Goto
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Hidenori Goto
Symfony tdd
Symfony tdd
Hidenori Goto
Tajimiit200905
Tajimiit200905
Hidenori Goto
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
Hidenori Goto
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Hidenori Goto
1 ioana creitaru pedrr workshop session 4
1 ioana creitaru pedrr workshop session 4
unuehs
翻訳について
翻訳について
Hidenori Goto
Symfony2 introduction
Symfony2 introduction
Hidenori Goto
Destaque
(9)
HTC Desireについて
HTC Desireについて
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Symfony tdd
Symfony tdd
Tajimiit200905
Tajimiit200905
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
1 ioana creitaru pedrr workshop session 4
1 ioana creitaru pedrr workshop session 4
翻訳について
翻訳について
Symfony2 introduction
Symfony2 introduction
Semelhante a Doctrine2 odm-workshop-1
Symfony2 workshop-1
Symfony2 workshop-1
Hidenori Goto
Symfony2#5 LT
Symfony2#5 LT
Masato Koizumi
日本Symfonyユーザ会によるSymfony2 ワークショップ
日本Symfonyユーザ会によるSymfony2 ワークショップ
Shin Ohno
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
Koji Iwazaki
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
Hidenori Goto
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
Hello Ruby
Hello Ruby
Takahiro KUREBAYASHI
Symfony2
Symfony2
Yusuke Higaki
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Hidenori Goto
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
Symfony2 intro-20111204
Symfony2 intro-20111204
Hidenori Goto
Symfony勉強会#9 form
Symfony勉強会#9 form
Yuichi Okada
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Tomofumi Yagi
Symfony2 workshop-2
Symfony2 workshop-2
Hidenori Goto
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Atsushi Eno
Dakota+openFoam1
Dakota+openFoam1
守淑 田村
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
77web
Embedded Master2
Embedded Master2
android sola
What makes pyramid unique
What makes pyramid unique
Atsushi Odagiri
Semelhante a Doctrine2 odm-workshop-1
(20)
Symfony2 workshop-1
Symfony2 workshop-1
Symfony2#5 LT
Symfony2#5 LT
日本Symfonyユーザ会によるSymfony2 ワークショップ
日本Symfonyユーザ会によるSymfony2 ワークショップ
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hello Ruby
Hello Ruby
Symfony2
Symfony2
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
mruby for embedded systems
mruby for embedded systems
Symfony2 intro-20111204
Symfony2 intro-20111204
Symfony勉強会#9 form
Symfony勉強会#9 form
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Symfony2 workshop-2
Symfony2 workshop-2
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Dakota+openFoam1
Dakota+openFoam1
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
Embedded Master2
Embedded Master2
What makes pyramid unique
What makes pyramid unique
Mais de Hidenori Goto
Excelで勤務時間合計2
Excelで勤務時間合計2
Hidenori Goto
Excelで勤務時間合計
Excelで勤務時間合計
Hidenori Goto
Symfony2 3rd-Party Bundles
Symfony2 3rd-Party Bundles
Hidenori Goto
Symfony2 behat-bdd
Symfony2 behat-bdd
Hidenori Goto
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
Hidenori Goto
Orm Designer
Orm Designer
Hidenori Goto
Symfony2 caching
Symfony2 caching
Hidenori Goto
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
Hidenori Goto
TwitterのStreaming APIについて
TwitterのStreaming APIについて
Hidenori Goto
SubversionとSugarsync
SubversionとSugarsync
Hidenori Goto
Jimdoの紹介
Jimdoの紹介
Hidenori Goto
EclipseでPHP開発
EclipseでPHP開発
Hidenori Goto
Slideshare Japanese
Slideshare Japanese
Hidenori Goto
symfonyの始め方
symfonyの始め方
Hidenori Goto
Mais de Hidenori Goto
(15)
Excelで勤務時間合計2
Excelで勤務時間合計2
Excelで勤務時間合計
Excelで勤務時間合計
Symfony2 3rd-Party Bundles
Symfony2 3rd-Party Bundles
Symfony2 behat-bdd
Symfony2 behat-bdd
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
Orm Designer
Orm Designer
Symfony2 caching
Symfony2 caching
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming APIについて
TwitterのStreaming APIについて
SubversionとSugarsync
SubversionとSugarsync
Jimdoの紹介
Jimdoの紹介
EclipseでPHP開発
EclipseでPHP開発
Slideshare Japanese
Slideshare Japanese
symfonyの始め方
symfonyの始め方
Doctrine2 odm-workshop-1
1.
Symfony2ワークショップ Doctrine2 MongoDB-ODM Symfony2 ワークショップ Doctrine2 (MongoDB-ODM) 日本Symfonyユーザー会 後藤
秀宣(@hidenorigoto)
2.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 注意 2分 Symfony2は使いません Doctrine2はSymfony2の中でも役割が大きいので このワークショップでは独立して学習します MongoDB(ODM)でやりますが、MySQL(ORM)でも同じコンセプト なので応用できます (といっても、MongoDBの概念はRDBとはだいぶ違う) ★最後にSymfony2から使う方法があります
3.
Symfony2ワークショップ Doctrine2 MongoDB-ODM ● 参考ドキュメントURL http://www.mongodb.org/display/DOCSJP/Home http://docs.symfony-reloaded.org/master/ http://www.doctrine- project.org/projects/mongodb_odm
4.
Symfony2ワークショップ Doctrine2 MongoDB-ODM MongoDB準備(5分) ● $
mongo > help > show dbs > use test > show collections > db.User.help() > db.User.find() ● pecl install mongo ● http://localhost:28017/ ←Webインターフェイス /etc/mongodb.conf rest=true を追加 動く方は、helpなどを見てください
5.
Symfony2ワークショップ Doctrine2 MongoDB-ODM Doctrine2
MongoDB ODM(1分) ● 概要 ODM = Object Document Mapper ORM的にMongoDBのドキュメント(レコード)を操作 Doctrine2 ORMとかなり統一性がある DQLっぽいもので検索できる ★もともとORMを使っていた開発者には、馴染みやすいス タイルと思われる Symfony2にも統合されている
6.
Symfony2ワークショップ Doctrine2 MongoDB-ODM mongodb-odm(5分) ● Doctrine2のうち、MongoDBを扱うライブラリ $
mkdir wsroot ←ワークショップ作業ルート(任意) $ cd wsroot $ git clone git://github.com/doctrine/ mongodb-odm.git $ cd mongodb-odm $ git submodule init $ git submodule update $ cd .. $ mkdir d2ws ←作業ファイル用(任意) ● Git環境がない場合は今回用のパッケージをコピー
7.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 01
ブートストラップ(5分) ● d2ws/01/01.php
8.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 01
名前空間を使う (2分)
9.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
(再)ドキュメントとは(1分) ● MongoDBに保存する1つのデータ構造(レコード) ドキュメントの集まり = コレクション ※コレクションがRDBのテーブルに相当する ● Doctrine2では、POPO(Plain Old PHP Object)のクラ スのメンバ変数(など)にアノテーションで設定を記述す る (この設定を「マッピング」と呼ぶ)
10.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
ドキュメントの作成(5分) ● 02/Document/User.php
11.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
ドキュメントの追加 (3分) ● d2ws/bootstrap.php(をコピーしてください) ● d2ws/02/02.php
12.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
保存されたか確認(1分) ● $ mongo > use test > db.User.find() ● http://localhost:28017/test/User/
13.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
取得 (1) (2分) d2ws/02/02-find1.php ドキュメントマネージャーからfind findの戻り値はMongoCursorオブジェクト foreachで回すと、マッピング先のオブジェクト(DocumentUser)で取得できる
14.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
取得(2) (2分) ● d2ws/02/02-find2.php Queryオブジェクトを使う →Query Builder API
15.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
取得(3) (-分) ● d2ws/02/02-find3.php DQL DQLを使ってCRUD。まだExperimentalらしい
16.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
ハイドレート (2分) ● Queryオブジェクトのhydrate()メソッドのパラメータで ON/OFF指定 true = ON false = OFF ->hydrate(false) にすると、foreachで回した時にマッピ ングが行われていない素のMongoレコードが返される (配列) ★カーソルオブジェクトはそのままという点も注意
17.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
hydrate off (1分) ● d2ws/02/02-find2-non-hydrate.php
18.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
更新(1) persist→flush ● 最初にデータを追加したのとほぼ同じ。 ● 複数のpersistを1回のflushにまとめられる。
19.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
更新(2) modifier ● modifierを使うと処理効率が良い & ATOMIC
20.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
更新(3) modifier(multiple) ● multipleオプションを使いたい場合は、execute()のオプ ションで指定する。
21.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
削除(1) remove→flush ● DocumentManager経由
22.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 02
削除(その他) ● QueryBuilder / DQL経由もupdateと同様
23.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 03
Embedding(組み込み) (10分) ● まあやってみましょう ● d2ws/03/ -03.php -Document/ -User.php -Address.php UserにAddressをEmbedします
24.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 03
Embedding マッピング ● d2ws/03/Document/Person.php にEmbed追加
25.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 03
Embedding 保存 ● d2ws/03/03.php
26.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 03
Embedding 取得 ● d2ws/03/03-retrieve.php
27.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 04
Reference(参照) (10分) ● Embeddingと似ている ReferenceはMongoDB上で実体が別になる ※一度に検索できない ● d2ws/04/ -04.php -Document/ -User.php -Address.php Userに記述する構文はEmbedとほとんど一緒
28.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 04
Reference マッピング ● Embeddingと似ている アノテーションで、明示的にカスケードを指定する必要がある (Embeddingの場合は、デフォルトでカスケードされる)
29.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 04
Reference 保存 ● 保存されたデータを確認 Rederenceの部分は、別コレクションのoidが保存される
30.
Symfony2ワークショップ Doctrine2 MongoDB-ODM 04
Reference 取得 ● 取得処理も同様(検索可能フィールドに注意)
31.
Symfony2ワークショップ Doctrine2 MongoDB-ODM まだまだありますが・・・ ● 次回にご期待くださいw ● Symfony2で使うには・・・・ ・app/AppKernel.php
でバンドル有効化 ・app/config/config.phpでエクステンション設定 →「doctrine_odm.mongodb: ~」 ・ドキュメントマネージャーはコンテナ経由 「$this['doctrine.odm.mongodb.document_manager']」 →アノテーションがちょっとだけ違う 「@mongodb:Document」など
Baixar agora