Soumettre la recherche
Mettre en ligne
Symfony2でMongoDBと仲良くする方法
•
1 j'aime
•
4,710 vues
K
Koji Iwazaki
Suivre
2011-06-04の第4回Symfony2勉強会の発表資料。 (2011-06-07 二枚目を頑張って更新。。。汗)
Lire moins
Lire la suite
Technologie
Spirituel
Signaler
Partager
Signaler
Partager
1 sur 47
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Working With Ajax Frameworks
Working With Ajax Frameworks
Jonathan Snook
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
Johannes Hoppe
Feeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds API
Alex S
Javascript and jQuery for Mobile
Javascript and jQuery for Mobile
Ivano Malavolta
Introduction to Service Worker
Introduction to Service Worker
Shogo Sensui
2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach
Johannes Hoppe
jQuery入門
jQuery入門
Tomo Fujita
Local storages
Local storages
Дмитрий Скинтиян
Recommandé
Working With Ajax Frameworks
Working With Ajax Frameworks
Jonathan Snook
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
Johannes Hoppe
Feeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds API
Alex S
Javascript and jQuery for Mobile
Javascript and jQuery for Mobile
Ivano Malavolta
Introduction to Service Worker
Introduction to Service Worker
Shogo Sensui
2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach
Johannes Hoppe
jQuery入門
jQuery入門
Tomo Fujita
Local storages
Local storages
Дмитрий Скинтиян
Assalamualaykum warahmatullahi wabarakatuu
Assalamualaykum warahmatullahi wabarakatuu
iswan_di
jQuery for designers
jQuery for designers
Johan Ronsse
Як досвід компанії перетворився на фреймворк
Як досвід компанії перетворився на фреймворк
Shtrih Sruleg
Wek14 mysql 2
Wek14 mysql 2
Rani Sarungallo Rombe
10 Programación Web con .NET y C#
10 Programación Web con .NET y C#
guidotic
Sis quiz
Sis quiz
Clesio Veloso
Asp .net Jquery
Asp .net Jquery
umesh patil
Юнит тестирование в Zend Framework 2.0
Юнит тестирование в Zend Framework 2.0
zfconfua
jQuery - Javascript para quem não sabe Javascript
jQuery - Javascript para quem não sabe Javascript
Nando Vieira
Jquery2
Jquery2
Inbal Geffen
Index2
Index2
grateful7
Jquery Preparation
Jquery Preparation
umesh patil
Simple crudlazarus
Simple crudlazarus
gopartheredbuff
咩星征服計劃 用 Js 征服地球 Part III
咩星征服計劃 用 Js 征服地球 Part III
羊 小咩 (lamb-mei)
Drupal 8. Movement towards. Susikov Sergey
Drupal 8. Movement towards. Susikov Sergey
ADCI Solutions
Jsoon
Jsoon
iqbalfatoni01
Formulario
Formulario
tukisele
アプリ設定の保存をシンプルに
アプリ設定の保存をシンプルに
susan335
Load2
Load2
grateful7
Web2.0 with jQuery
Web2.0 with jQuery
Lau Bech Lauritzen
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
はじめてのSymfony2
はじめてのSymfony2
Tomohiro MITSUMUNE
Contenu connexe
Tendances
Assalamualaykum warahmatullahi wabarakatuu
Assalamualaykum warahmatullahi wabarakatuu
iswan_di
jQuery for designers
jQuery for designers
Johan Ronsse
Як досвід компанії перетворився на фреймворк
Як досвід компанії перетворився на фреймворк
Shtrih Sruleg
Wek14 mysql 2
Wek14 mysql 2
Rani Sarungallo Rombe
10 Programación Web con .NET y C#
10 Programación Web con .NET y C#
guidotic
Sis quiz
Sis quiz
Clesio Veloso
Asp .net Jquery
Asp .net Jquery
umesh patil
Юнит тестирование в Zend Framework 2.0
Юнит тестирование в Zend Framework 2.0
zfconfua
jQuery - Javascript para quem não sabe Javascript
jQuery - Javascript para quem não sabe Javascript
Nando Vieira
Jquery2
Jquery2
Inbal Geffen
Index2
Index2
grateful7
Jquery Preparation
Jquery Preparation
umesh patil
Simple crudlazarus
Simple crudlazarus
gopartheredbuff
咩星征服計劃 用 Js 征服地球 Part III
咩星征服計劃 用 Js 征服地球 Part III
羊 小咩 (lamb-mei)
Drupal 8. Movement towards. Susikov Sergey
Drupal 8. Movement towards. Susikov Sergey
ADCI Solutions
Jsoon
Jsoon
iqbalfatoni01
Formulario
Formulario
tukisele
アプリ設定の保存をシンプルに
アプリ設定の保存をシンプルに
susan335
Load2
Load2
grateful7
Web2.0 with jQuery
Web2.0 with jQuery
Lau Bech Lauritzen
Tendances
(20)
Assalamualaykum warahmatullahi wabarakatuu
Assalamualaykum warahmatullahi wabarakatuu
jQuery for designers
jQuery for designers
Як досвід компанії перетворився на фреймворк
Як досвід компанії перетворився на фреймворк
Wek14 mysql 2
Wek14 mysql 2
10 Programación Web con .NET y C#
10 Programación Web con .NET y C#
Sis quiz
Sis quiz
Asp .net Jquery
Asp .net Jquery
Юнит тестирование в Zend Framework 2.0
Юнит тестирование в Zend Framework 2.0
jQuery - Javascript para quem não sabe Javascript
jQuery - Javascript para quem não sabe Javascript
Jquery2
Jquery2
Index2
Index2
Jquery Preparation
Jquery Preparation
Simple crudlazarus
Simple crudlazarus
咩星征服計劃 用 Js 征服地球 Part III
咩星征服計劃 用 Js 征服地球 Part III
Drupal 8. Movement towards. Susikov Sergey
Drupal 8. Movement towards. Susikov Sergey
Jsoon
Jsoon
Formulario
Formulario
アプリ設定の保存をシンプルに
アプリ設定の保存をシンプルに
Load2
Load2
Web2.0 with jQuery
Web2.0 with jQuery
En vedette
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
はじめてのSymfony2
はじめてのSymfony2
Tomohiro MITSUMUNE
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
Gitのおさらい
Gitのおさらい
Koji Iwazaki
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
Koji Iwazaki
Dependency management in PHP & ZendFramework 2
Dependency management in PHP & ZendFramework 2
Kirill Chebunin
CakePHP Console Application 拡張Tips
CakePHP Console Application 拡張Tips
Kenichirou Oyama
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Kenichirou Oyama
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
Yet another use of Phalcon
Yet another use of Phalcon
Yuji Iwai
はじめてのCodeIgniter
はじめてのCodeIgniter
Yuya Matsushima
PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
受託開発のPhalcon
受託開発のPhalcon
Masatoshi Hiraoka
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
YamaYamamoto
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
Phalcon勉強会資料
Phalcon勉強会資料
Yuji Otani
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォーム
ryo-utsunomiya
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
CodeIgniter入門
CodeIgniter入門
Sho A
En vedette
(20)
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
はじめてのSymfony2
はじめてのSymfony2
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Gitのおさらい
Gitのおさらい
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
Dependency management in PHP & ZendFramework 2
Dependency management in PHP & ZendFramework 2
CakePHP Console Application 拡張Tips
CakePHP Console Application 拡張Tips
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
Yet another use of Phalcon
Yet another use of Phalcon
はじめてのCodeIgniter
はじめてのCodeIgniter
PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について
PHP勉強会 #51
PHP勉強会 #51
受託開発のPhalcon
受託開発のPhalcon
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Phalcon勉強会資料
Phalcon勉強会資料
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォーム
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
CodeIgniter入門
CodeIgniter入門
Symfony2でMongoDBと仲良くする方法
1.
2.
•
• • • • •
3.
4.
5.
6.
7.
8.
9.
10.
•
• • • •
11.
•
• •
12.
•
• • •
13.
•
• • •
14.
•
• • • •
15.
•
• • • • •
16.
•
• • • • •
17.
18.
19.
20.
21.
• • •
22.
• • • • •
23.
※ •
24.
•
//... $loader->registerNamespaces(array( 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'), //... // 下記2行を追加 'DoctrineMongoDB' => __DIR__.'/../vendor/doctrine-mongodb/lib', 'DoctrineODM' => __DIR__.'/../vendor/doctrine-mongodb-odm/lib', )); //...
25.
•
//... public function registerBundles() { $bundles = array( //... // 下記を追加 new SymfonyBundleDoctrineMongoDBBundleDoctrineMongoDBBundle(), ); //...
26.
• •
//... $loader->registerNamespaces(array( //... 'Madapaja' => __DIR__.'/../src', )); //... • //... public function registerBundles() { $bundles = array( //... new MadapajaEnqueteFormBundleMadapajaEnqueteFormBundle(), ); //...
27.
•
#... doctrine_mongodb: default_database: wiki_%kernel.environment% # デフォルトDB名の指定 connections: # 接続設定 default: server: %mongo_server% # サーバー情報はparameters.iniから読み込み options: connect: true document_managers: # DocumentManager設定 default: mappings: MadapajaMongoWikiBundle: ~ • [parameters] ;... mongo_server="mongodb://localhost:27017"
28.
•
#... framework: #... validation: { enabled: true } # Validation を有効にしておく • wiki: # /wiki から始まるURLはMadapajaMongoWikiBundleのrouting.ymlから読み込む prefix: /wiki resource: "@MadapajaMongoWikiBundle/Resources/config/routing.yml"
29.
•
• • • array('Tag1', 'Tag2') • • •
30.
MadapajaMongoWikiBundleDocument;
Page { $id; $body; $tags = (); $revisions = (); $createdAt; $updatedAt; // 各 Setter/Getter function を定義... }
31.
•
• /** * @mongodb:Document(collection="pages") */ Page { //... }
32.
•
• /** * @mongodb:String */ $body; • /** * @mongodb:Date */ $createdAt; /** * @mongodb:Date */ $updatedAt;
33.
•
• /** * @mongodb:Id(strategy="NONE") */ $id; • •
34.
•
/** * @mongodb:Collection * @mongodb:Index */ $tags = (); • • • • ※
35.
•
/** * @mongodb:EmbedMany( * targetDocument="MadapajaMongoWikiBundleDocumentPageRevision" * ) */ $revisions = (); • •
36.
•
• • MadapajaMongoWikiBundleDocument; /** @mongodb:EmbeddedDocument */ PageRevision { /** @mongodb:String */ $body; /** @mongodb:Date */ $createdAt; // 各 Setter/Getter function を定義... } •
37.
•
$dm = $this->get('doctrine.odm.mongodb.document_manager'); • // DocumentManager からリポジトリを取得して、 $page = $dm->getRepository('MadapajaMongoWikiBundle:Page') // id が $pageName なデータを一件取得 ->findOneBy( ('id' => $pageName));
38.
•
// 新しいPageを作って $page = MadapajaMongoWikiBundleDocumentPage($pageName); //... $pageにデータをセットする // DocumentManager にセット $dm->persist($page); // 保存する $dm->flush();
39.
•
// ページを取得 $page = $dm->getRepository('MadapajaMongoWikiBundle:Page') ->findOneBy( ('id' => $pageName)); // PageRevision の生成 $revision = MadapajaMongoWikiBundleDocumentPageRevision(); // ... $revision と $page にデータをセットする // リビジョンの追加 $page->addRevision($revision); // DocumentManager にセット $dm->persist($page); // 保存する $dm->flush();
40.
•
// SchemaManager を通して、インデックスを生成させます。 $dm->getSchemaManager()->ensureDocumentIndexes( ($page));
41.
•
42.
{
"_id" : "home", "body" : "再度更新をしてみます", "tags" : [ "Tag1", "Tag2", "Tag3" ], "revisions" : [ { "body" : "最初に作ったページです", "createdAt" : ISODate("2011-06-02T11:4 6Z") 0:4 }, { "body" : "更新を1回してみます", "createdAt" : ISODate("2011-06-02T11:4 9Z") 6:4 } ], "createdAt" : ISODate("2011-06-02T11:4 6Z"), 0:4 "updatedAt" : ISODate("2011-06-02T11:48:29Z") }
43.
{
"_id" : "home", "body" : "再度更新をしてみます", "tags" : [ "Tag1", "Tag2", "Tag3" ], "revisions" : [ { "body" : "最初に作ったページです", "createdAt" : ISODate("2011-06-02T11:4 6Z") 0:4 }, { "body" : "更新を1回してみます", "createdAt" : ISODate("2011-06-02T11:4 9Z") 6:4 } ], "createdAt" : ISODate("2011-06-02T11:4 6Z"), 0:4 "updatedAt" : ISODate("2011-06-02T11:48:29Z") }
44.
•
// e.g. db.pages.update( { "_id": "home" }, { "$set": { "body": "再度更新をしてみます", "updatedAt": new Date("Thu, 02 Jun 2011 20:4 8:29 +0900") } }); db.pages.update( { "_id": "home" }, { "$pushAll": { "revisions": [ { "body": "更新を1回してみます", "createdAt": new Date("Thu, 02 Jun 2011 20:4 9 +0900") 6:4 } ] } });
45.
•
// e.g. db.pages.update( { "_id": "home" }, { "$set": { "body": "再度更新をしてみます", "updatedAt": new Date("Thu, 02 Jun 2011 20:4 8:29 +0900") } }); db.pages.update( { "_id": "home" }, { "$pushAll": { "revisions": [ { "body": "更新を1回してみます", "createdAt": new Date("Thu, 02 Jun 2011 20:4 9 +0900") 6:4 } ] } });
46.
•
// e.g. db.pages.update( { "_id": "home" }, { "$set": { "body": "再度更新をしてみます", "updatedAt": new Date("Thu, 02 Jun 2011 20:4 8:29 +0900") } }); db.pages.update( { "_id": "home" }, { "$pushAll": { "revisions": [ { "body": "更新を1回してみます", "createdAt": new Date("Thu, 02 Jun 2011 20:4 9 +0900") 6:4 } ] } });
Télécharger maintenant