Mais conteúdo relacionado Semelhante a スイーツ(笑)がハモってみた (20) Mais de Satoshi Hirata (20) スイーツ(笑)がハモってみた1. スーツ(笑)が
ハモってみた
2009/02/27
株式会社Fusic 平田 哲
Copyright © Fusic Co., Ltd. All rights reserved.
2. スーツ(笑)が
ハモってみた
合奏してみた
2009/02/27
株式会社Fusic 平田 哲
Copyright © Fusic Co., Ltd. All rights reserved.
4. 0. 自己紹介
初めてのPiFでいきなり喋ります。
緊張しまくりです。><
Copyright © Fusic Co., Ltd. All rights reserved. 4
5. 0. 自己紹介
* *
+ うそです
*
n ∧_∧ n
+ (ヨ(* ´∀`)E)
*
Y Y
だって大半の人知ってますもん。
Copyright © Fusic Co., Ltd. All rights reserved. 5
6. 0. 自己紹介
平田 哲 (id:debility)
・プログラマ
主な開発言語
- PHP
- Java
- Perl
- AIR
- lingo (Adobe director)
- Visual C++
Copyright © Fusic Co., Ltd. All rights reserved. 6
7. 0. 自己紹介
平田 哲 (id:debility)
・プログラマ
DBも当然使います
- PostgreSQL
- MySQL
- Oracle
- Firebird
- Access
Copyright © Fusic Co., Ltd. All rights reserved. 7
8. 0. 自己紹介
平田 哲 (id:debility)
・プログラマ
会社での(多分)主担当
- サーバ周りあれこれ
- ネットワーク周りあれこれ
-
・・・何屋さんなのかと。
Copyright © Fusic Co., Ltd. All rights reserved. 8
9. 0. 自己紹介
平田 哲 (id:debility)
・プログラマ
ここ最近の喋ったヒストリ
- Fukuoka.pm
- AIR Business Community
- PHP in Fukuoka
・・・節操がない。
Copyright © Fusic Co., Ltd. All rights reserved. 9
10. 0. 自己紹介
あんまし気にせずズンドコ喋ります。
Copyright © Fusic Co., Ltd. All rights reserved. 10
12. 1. フレームワークの話
そもそも。
なぜフレームワークを使うのか。
=楽したいからに決まってます。
苦労ばかりなら使いません。
Copyright © Fusic Co., Ltd. All rights reserved. 12
13. 1. フレームワークの話
個人的使う理由あれこれ
- システム設計が固めやすい
- 特にO/Rマッパが楽
- 車輪の再発明があんましいらない
- 話が通じやすい(内外とも)
- などなど
Copyright © Fusic Co., Ltd. All rights reserved. 13
14. 1. フレームワークの話
特にRails以降大きく変わった気がします。
昔はもうちょい長期的な観点で得するよ的
だった気もするんですが。
最近だとちょっとしたところでもさっくり
フレームワーク使って楽してます。
コストが下がって質が上がる
→使ったほうが何かと便利。
Copyright © Fusic Co., Ltd. All rights reserved. 14
15. 1. フレームワークの話
でも、何使えばいいのかしら。
- Zend Frameworkとか
- CakePHPとか
- symfonyとか
- AlkeosとかCodeIgniterとか
- QcodoとかSolarとか
そりゃもうたくさんあります。
Copyright © Fusic Co., Ltd. All rights reserved. 15
16. 1. フレームワークの話
今日は
- CakePHP
- symfony
についてざっくり喋ります。
Copyright © Fusic Co., Ltd. All rights reserved. 16
17. 1. フレームワークの話
特に
- symfony
を掘り下げます。
Copyright © Fusic Co., Ltd. All rights reserved. 17
19. 2. ざっくりCakePHP
CakePHP
- 高速開発フレームワーク
- MVC
- O/Rマッピング
- 「設定より規約優先」
- Railsラクらしい
Copyright © Fusic Co., Ltd. All rights reserved. 19
20. 2. ざっくりCakePHP
CakePHP
- 特に小規模向けらしい
- PHP4でも動く
- デゖレクトリ単位で配布
Copyright © Fusic Co., Ltd. All rights reserved. 20
22. 3. ざっくりsymfony
symfony
- 開発パターンの自動化
- MVC
- O/Rマッピング
- これもRailsラクらしい
Copyright © Fusic Co., Ltd. All rights reserved. 22
23. 3. ざっくりsymfony
symfony
- 特に中~大規模向けらしい
- PHP5(最新版だと5.2以降)
- PEARでンストール
- sandboxもある
Copyright © Fusic Co., Ltd. All rights reserved. 23
25. 4. ざっくり両者比較
フゔル構成
symfony
CakePHP
apps
app config
lib
plugins
cake
test
web
Copyright © Fusic Co., Ltd. All rights reserved. 25
26. 4. ざっくり両者比較
CakePHPの構成掘り下げ
app config
controllers
models
plugins
tests
views
webroot
Copyright © Fusic Co., Ltd. All rights reserved. 26
27. 4. ざっくり両者比較
symfonyの構成掘り下げ①
apps frontend
backend
・・・
Copyright © Fusic Co., Ltd. All rights reserved. 27
28. 4. ざっくり両者比較
symfonyの構成掘り下げ②
frontend config
lib
modules config
templates actions
templates
Copyright © Fusic Co., Ltd. All rights reserved. 28
29. 4. ざっくり両者比較
symfonyの構成掘り下げ③
lib form
model
symfony
Copyright © Fusic Co., Ltd. All rights reserved. 29
30. 4. ざっくり両者比較
構成を並べるとこんな感じ
symfony
CakePHP
V/C/など V/C/など
M/V/C/など frontend backend
システム Model/Form
Cake本体 Symfony本体
PHP DB PHP DB
Copyright © Fusic Co., Ltd. All rights reserved. 30
31. 4. ざっくり両者比較
開発の流れ
symfony
CakePHP
DB設計/構築 設計する
(bake) YAML書く
作り込み 自動生成
作り込み
Copyright © Fusic Co., Ltd. All rights reserved. 31
32. 4. ざっくり両者比較
中身の違い
symfony
CakePHP
そこそこ かなり
オブジェクト指向 オブジェクト指向
baker コマンド
配列 YAML
Copyright © Fusic Co., Ltd. All rights reserved. 32
33. 4. ざっくり両者比較
CakePHPの中身掘り下げ
そこそこ
オブジェクト指向
baker
配列
Copyright © Fusic Co., Ltd. All rights reserved. 33
34. 4. ざっくり両者比較
symfonyの中身掘り下げ
かなり
オブジェクト指向
コマンド
YAML
Copyright © Fusic Co., Ltd. All rights reserved. 34
37. 5. symfony事始め
いくつか注意事項
・symfony1.1の話です(最新は1.2)
・作法に沿っていない部分もあります
・cakePHPとの比較目線で実際に使って
みた感想を元に喋っているので、本に書い
てあるようなこととは若干論点がずれたり
しています。
Copyright © Fusic Co., Ltd. All rights reserved. 37
38. 5. symfony事始め
登場するもの
- symfony CLI
- YAML
- モデル
- Peer
- Base/BasePeer
- フォーム
- バリデータ
- ゕプリケーション
Copyright © Fusic Co., Ltd. All rights reserved. 38
39. 5. symfony事始め
登場するもの
- モジュール
- ゕクション
- コンポーネント
- テンプレート
- ヘルパー
- パーシャル
- スロット
- コンポーネントスロット
Copyright © Fusic Co., Ltd. All rights reserved. 39
40. 5. symfony事始め
登場するもの
- プロペル
- クラテリゕ
- オートローダ
-
-
-
Copyright © Fusic Co., Ltd. All rights reserved. 40
41. 5. symfony事始め
多い!
Copyright © Fusic Co., Ltd. All rights reserved. 41
42. 5. symfony事始め
登場するもの(重要なところだけ)
- symfony CLI
- YAML
- モデル
- Peer
- Base/BasePeer
Copyright © Fusic Co., Ltd. All rights reserved. 42
43. 5. symfony事始め
登場するもの(重要なところだけ)
- モジュール
- ゕクション
- コンポーネント
- テンプレート
- パーシャル
Copyright © Fusic Co., Ltd. All rights reserved. 43
44. 5. symfony事始め
登場するもの(重要なところだけ)
- プロペル
- クラテリゕ
Copyright © Fusic Co., Ltd. All rights reserved. 44
45. 5. symfony事始め
とりあえず使ってみる
- PEARでンストールか
- sandbox落としてきて置くか
いずれにせよまずはinit-project
Copyright © Fusic Co., Ltd. All rights reserved. 45
46. 5. symfony事始め
DB設計
- YAML書く
- YAMLからSQL生成する
- テーブル作る
- Model作る
Copyright © Fusic Co., Ltd. All rights reserved. 46
47. 5. symfony事始め
ゕプリ開発
- init-app
- init-module
- Formオブジェクト生成
- YAML書く
- 細かい動きは自分で書く
- の繰り返し(だいたい)
Copyright © Fusic Co., Ltd. All rights reserved. 47
49. 6. 使ってみた話
前提
- 既存の二次開発
- 入力I/F大体決まってる
- DB構成も大体決まってる
- symfonyに寄せきれない
→ とりあえずORMだけでも活かせれば
Copyright © Fusic Co., Ltd. All rights reserved. 49
50. 6. 使ってみた話
ログン
- module作る
- settings.ymlをちょっと書く
- 動いた
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 50
51. 6. 使ってみた話
メニュー
- layout.php書く
- _menu.phpを書く
- include_partial(‘global/menu’);
- 動いた
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 51
52. 6. 使ってみた話
検索作る
- 既存のSQL見る
- Criteriaで置き換える
- 置き換える
- 置き換える
- 置き換えた
- ちゃんと取れた
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 52
53. 6. 使ってみた話
登録作る
- Formオブジェクト作る
- バリデーション書く
- $paramに放り込む
- bindする
- isValidののちsaveする
- 入った
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 53
54. 6. 使ってみた話
更新作る
- $paramに放り込む
- bindする
- isValidののちsaveする
- 更新された
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 54
55. 6. 使ってみた話
削除作る
- retrieveByPKでデータ拾う
- delete呼ぶ
- 削除された
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 55
56. 6. 使ってみた話
論理削除
- sfPropelParanoidBehaviorPlugin
- 突っ込む
- schema.yml書き換える
- symfony propel:build-model
- でけた
- ( ´∀`)
Copyright © Fusic Co., Ltd. All rights reserved. 56
58. 7. 使ってみた話(裏)
ログン(裏)
- module作る
- settings.ymlをちょっと書く
- 動いた
- ( ´∀`)
- timeoutがうまく効かない
- (; ´ Д`) ??
- autoload.ymlに書くのが正解
Copyright © Fusic Co., Ltd. All rights reserved. 58
59. 7. 使ってみた話(裏)
メニュー(裏)
- layout.php書く
- _menu.phpを書く
- include_partial(‘global/menu’);
- 動かない
- (; ´ Д`) ??
- jQueryがとにかく怒られる
- Prototypeと競合してた
- noConflictで解決
Copyright © Fusic Co., Ltd. All rights reserved. 59
60. 7. 使ってみた話(裏)
検索作る(裏)
- 既存のSQL見る
- Criteriaで置き換える
- 置き換える
- 置き換える
- 置き換えた
- ちゃんと取れない
- (; ´ Д`) ??
Copyright © Fusic Co., Ltd. All rights reserved. 60
61. 7. 使ってみた話(裏)
検索作る(裏)
- YAMLが記述足りかった
- 書く
- 挙動がもっとおかしくなった
- (; ´ Д`) ????
- symfony cc
- まだ動かない
Copyright © Fusic Co., Ltd. All rights reserved. 61
62. 7. 使ってみた話(裏)
検索作る(裏)
- timestampで怒られる
- ソース掘りさげる
- 既存のデータが過去すぎる
- 少し修正
- やっと動いた
Copyright © Fusic Co., Ltd. All rights reserved. 62
63. 7. 使ってみた話(裏)
更新作る(裏)
- $paramに放り込む
- bindする
- isValidののちsaveする
- 入らない
- (; ´ Д`) ??
- 全部のパラメータをきちんとセット
- 動いた
- ちょっと面倒(方法ありそう)
Copyright © Fusic Co., Ltd. All rights reserved. 63
64. 7. 使ってみた話(裏)
論理削除(裏)
- sfPropelParanoidBehaviorPlugin
- 突っ込む
- schema.yml書き換える
- symfony propel:build-model
- 怒られる
- (; ´ Д`) ??
Copyright © Fusic Co., Ltd. All rights reserved. 64
65. 7. 使ってみた話(裏)
論理削除(裏)
- 削除フラグは用意してた
- デフォルトの削除判定はtimestamp
- 動かない
- pluginちょびっと修正
- 動いた
Copyright © Fusic Co., Ltd. All rights reserved. 65
67. 8. symfony雑感
ステキなところ
- 開発の自動化
- YAMLでかなりの部分記述できる
- ORMの吐くSQLがきれい
- きちんとオブジェクト指向
- コントロールパネルが便利
- ↓こんなのが右上に出せる
Copyright © Fusic Co., Ltd. All rights reserved. 67
68. 8. symfony雑感
ステキなところ
- 既存DBの活用が楽
- Criteria/schema.yml
- pluginを活用したらもっと楽
- NetBeansが正式サポート
Copyright © Fusic Co., Ltd. All rights reserved. 68
69. 8. symfony雑感
微妙なところ
- 学習コストが高い
- 登場人物が多すぎる
- 公式リフゔレンスが使いにくい
- 小技のドキュメント/記事が少ない
とかあったらいいのに。
Copyright © Fusic Co., Ltd. All rights reserved. 69
71. 9. ざっくりまとめ
・Railsラク ≠ Rails
・symfonyは巧く乗りこなすと楽できる
→ 乗りこなすまでは結構大変
とりあえず小さいものからちょこちょこ
作ってみるといいと思います。
いくつかシステムを作っていくうちにクセ
とかが身に付くので。
Copyright © Fusic Co., Ltd. All rights reserved. 71
72. 9. ざっくりまとめ
あと、今からsymfony始めるなら。
NetBeansはかなり強力な助けになって
くれるはずです。ぜひ導入検討をしてみて
ください。
・・・フレームワークの話してたつもりが
最後はIDE紹介になってしまいました。
決して の陰謀ではありませんよ。
Copyright © Fusic Co., Ltd. All rights reserved. 72