Submit Search
Doctrineではじめるsymfony1.2開発
6 likes
1,622 views
Katsuhiro Ogawa
1 of 45
Download now
Downloaded 19 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
More Related Content
PDF
5分で分かる名前空間とオートロード
K Holy
PPT
Jjug2009 Fall
Takashi Ogura
PDF
Python を使ってカメリオを高速化した話
Nozomu Kaneko
PDF
Reading Anorm 2.0
Kazuhiro Sera
PDF
Enumはデキる子 ~ case .Success(let value): ~
Takaaki Tanaka
PDF
Laravelを用いたゲームサーバーのチューニング
NOW PRODUCTION
PDF
Boostライブラリ一周の旅
Akira Takahashi
ODP
pixiv サイバーエージェント共同勉強会 solr導入記
Takahiro Matsumiya
5分で分かる名前空間とオートロード
K Holy
Jjug2009 Fall
Takashi Ogura
Python を使ってカメリオを高速化した話
Nozomu Kaneko
Reading Anorm 2.0
Kazuhiro Sera
Enumはデキる子 ~ case .Success(let value): ~
Takaaki Tanaka
Laravelを用いたゲームサーバーのチューニング
NOW PRODUCTION
Boostライブラリ一周の旅
Akira Takahashi
pixiv サイバーエージェント共同勉強会 solr導入記
Takahiro Matsumiya
Similar to Doctrineではじめるsymfony1.2開発
(20)
PDF
10分でわかるFuelPHP @ 2011/12
kenjis
PDF
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
アシアル株式会社
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
PPTX
Laravel勉強会(データベーステスト編)
AyakaNishiyama
PDF
Web技術勉強会 20100925
龍一 田中
PDF
20170131 python3 6 PEP526
masahitojp
PDF
SPL fukuokaphp_1
ichikaway
PDF
CakePHP - The point of upgrade
Yasuo Harada
PDF
理科大勉強会2
Masataka Hashimoto
PDF
はじめてのCodeIgniter
Yuya Matsushima
PDF
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
Takashi Uemura
PDF
CakePHP2 Loading (Japanese)
ichikaway
PDF
Scala2.8への移行
guest5f4320
PDF
Scala2.8への移行
Takeda Hiroyuki
KEY
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
PPTX
PHP基礎勉強会
Yuji Otani
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PPT
Clojure+Leiningenで3分Hadoop
Toshiaki Maki
10分でわかるFuelPHP @ 2011/12
kenjis
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
アシアル株式会社
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
Laravel勉強会(データベーステスト編)
AyakaNishiyama
Web技術勉強会 20100925
龍一 田中
20170131 python3 6 PEP526
masahitojp
SPL fukuokaphp_1
ichikaway
CakePHP - The point of upgrade
Yasuo Harada
理科大勉強会2
Masataka Hashimoto
はじめてのCodeIgniter
Yuya Matsushima
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
Takashi Uemura
CakePHP2 Loading (Japanese)
ichikaway
Scala2.8への移行
guest5f4320
Scala2.8への移行
Takeda Hiroyuki
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
PHP基礎勉強会
Yuji Otani
実"戦"CakePHP Plugin
Kenichirou Oyama
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
Clojure+Leiningenで3分Hadoop
Toshiaki Maki
Ad
More from Katsuhiro Ogawa
(11)
PDF
20120327 phpstudy58-phake
Katsuhiro Ogawa
PDF
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
PDF
Twigエクステンションの作り方
Katsuhiro Ogawa
KEY
Symfony Update 2011
Katsuhiro Ogawa
KEY
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
PDF
Contribute to Symfony
Katsuhiro Ogawa
PPTX
究極のPHP本完成
Katsuhiro Ogawa
PPTX
Symfony updates
Katsuhiro Ogawa
PPTX
日本電子卒業生とPHPとsymfony
Katsuhiro Ogawa
PPTX
sfWebDebugToolbarを拡張してみる
Katsuhiro Ogawa
PPT
symfony 1.2を支えるサブフレームワーク
Katsuhiro Ogawa
20120327 phpstudy58-phake
Katsuhiro Ogawa
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
Twigエクステンションの作り方
Katsuhiro Ogawa
Symfony Update 2011
Katsuhiro Ogawa
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
Contribute to Symfony
Katsuhiro Ogawa
究極のPHP本完成
Katsuhiro Ogawa
Symfony updates
Katsuhiro Ogawa
日本電子卒業生とPHPとsymfony
Katsuhiro Ogawa
sfWebDebugToolbarを拡張してみる
Katsuhiro Ogawa
symfony 1.2を支えるサブフレームワーク
Katsuhiro Ogawa
Ad
Doctrineではじめるsymfony1.2開発
1.
Doctrine ではじめる symfony1.2
開発 第 2 回 symfony 勉強会 小川 雄大
2.
自己紹介 名前: 小川雄大
3.
所属: アシアル株式会社
4.
PHP暦: 2年弱
5.
H.N.: fivestar http://d.hatena.ne.jp/Fivestar
6.
http://wassr.jp/user/fivestar
7.
アジェンダ Doctrine の特徴
8.
Propel との比較
9.
symfony 1.2 +
Doctrine
10.
TIPS+
11.
Doctrine 2.0
12.
Doctrine の特徴
13.
その前に
14.
Doctrine 使ったこと ありますか?
15.
Doctrine の特徴 DQL
SQL に近い感覚でクエリをかける
16.
Hibernate の HQL
にインスパイア PDO PHP 5.2.3 以上 日本語のドキュメントあり http://www.doctrine-project.org/
17.
DQL D octrine
Q uery L anguage 正確にはDoctrine用のSQL DQLを生成するためのインターフェイスが Doctrine_Query オブジェクト
18.
間違ってもDQNではない
19.
この後Propelと比較しながら説明
20.
Propel との比較
21.
Propel との比較 Propel
1.3 / Doctrine 1.0
22.
CRUD
23.
生SQL
24.
クラスの違い
25.
CREATE
26.
CREATE
27.
RETRIEVE
28.
WHERE id =
1
29.
WHERE id =
1 AND title LIKE '%symfony%'
30.
WHERE id =
1 OR title LIKE '%symfony%'
31.
WHERE id IN
(1, 2, 3) NOT INの場合は Criteria::NOT_IN / whereNotIn()
32.
LEFT JOIN INNER
JOINの場合は Criteria::INNER_JOIN / innerJoin()
33.
ORDER BY price
DESC LIMIT 5 OFFSET 10
34.
UPDATE
35.
UPDATE 基本的にCREATEと同じ
36.
複数のレコードを一度に更新したい場合 Propel: BasePeer::doUpdate 割愛
Doctrine プレースホルダを使用したい場合は set(array($key, $value)) のように配列で指定
37.
DELETE
38.
DELETE
39.
生 S QL
40.
生 SQL あとはPDOStatementを好きなように
PropelだとArticlePeer::populateObjects($stmt)
41.
クラスの違い
42.
BaseObject / Doctrine_Record
Propel BaseObject
43.
モデル生成時にメソッドを作成し、 静的 に呼び出し
44.
$article->getTitle(); Doctrine Doctrine_Record
45.
メソッドは__callで 動的 に呼び出し
46.
$article->getTitle() / get('title')
/ title / $article['title'] getTitleが実装されていれば呼び出し / それ以外はget('title')に
47.
BasePeer / Doctrine_Table
Propel BasePeer
48.
クラスメソッド
49.
ArticlePeer::doSelect(new Criteria()) Doctrine
Doctrine_Table
50.
インスタンスメソッド
51.
Doctrine::getTable('Article')->findAll()
52.
findOneByIdなど動的に実行
53.
Doctrine_Collection Propel is_array
($articles) $articles[0] Doctrine $articles instanceof Doctrine_Collection ArrayIteratorを実装したクラス
54.
$articles->getFirst() / ->get(0)
/ $articles[0]
55.
$articles->count()
56.
symfony 1.2 +
Doctrine
57.
symfony 1.2
には はじめから Doctrine が 入ってます
58.
databases.yml classを sfDoctrineDatabase
に
59.
doctrine.ini ありません
60.
ProjectConfiguration sfDoctrinePluginを読み込むよう設定
61.
必要に応じてconfigureDoctrineで設定変更
62.
後はコマンドラインで symfonyコマンドにdoctrineがでてくるはず
63.
config/doctrine/schema.ymlを作成
64.
後はモデルやフォームを作成 $ symfony
doctrine:build-all lib/model/doctrine
65.
lib/form/doctrine まずはCRUDをみてみるといいかも $
symfony doctrine:generate-module
66.
TIPS+
67.
オブジェクトのダンプ Record /
Collection共にかなりのデータ量
68.
var_dump($article) とかマジ危険
69.
配列にしてしまえばOK $record-> toArray
()
70.
$collection-> toArray ()
ダンプ用のメソッドも Doctrine_Lib::getRecordAsString($record)
71.
Doctrine_Lib::getCollectionAsString($collection)
72.
配列から取り込み $record-> fromArray
($values)
73.
$values = array(フィールド名
=> 値, …)
74.
新規作成と同時に行いたい場合 Doctrine::getTable('Article')->create($values) IDなども上書きされるので注意
75.
フックメソッド 一覧 pre/postSave
pre/postInsert
76.
pre/postUpdate pre/postDelete
77.
pre/postDqlSelect
78.
pre/postDqlDelete
79.
pre/postDqlUpdate Tableクラスに記述
80.
テンプレート Propelのbehavior
81.
デフォルトでいくつか用意されている Timestampable created_at
/ updated_atの自動更新 SoftDelete 論理削除 アシアルブログを参照 http://blog.asial.co.jp/475
82.
http://blog.asial.co.jp/408
83.
Doctrine 2.0
84.
Doctrine 2.0 構造や実装が一新
85.
DBAL層とORM層を明確に分離
86.
いくつかの主要クラス名が大幅に変更 Doctrine_Record =>
Entity
87.
Doctrine_Table => Repository,
Manager namespaceの採用
88.
Doctrine 2.0 左が1.1のbranch
89.
右がtrunk(2.0)
90.
Doctrine 2.0 リリースはまだまだ先の話
Trac上では2009年9月1日予定 詳しくは本家Wikiを参照 http://trac.doctrine-project.org/wiki/Doctrine2.0
91.
ぜひ皆さんも Doctrine 使ってみましょう。
92.
ご静聴ありがとうございました 小川雄大
(a.k.a fivestar)
Download