2010-02-08
symfonyとdjango、ちょっとだけ
動かすサーバが単純になかったのでgoogle app engineを使いたかったのとdjangoにちょっと興味があったので、動かそうとしたけど
- google-app-engine-djangoが挙動不審
- runserverするとdjango moduleを読み込めるときと読み込めない時がある
- dumpdataが出来るときと出来無いときがある
- もうなんかよくわからない
という問題があって今のところストップしてる。ただせっかくなので、いつも使ってるsymfonyとちょっとだけ比較してみます。
mvcモデル
symfonyはmvc(model, view controller)
djangoはmvt(model, view, template)
djangoでいうviewがmvcモデルでいうcontroller、templateがviewに近いらしい。なんでこうなってるのかまでは調べてない。僕の中では=になってる
ルーティング
djangoは全部正規表現。名前付き正規表現びびる。あとpyファイル。
(r^hoge/(?P<fuga>.*)/$', hgoe)
でview(controller)にfugaという名前で変数を渡せる。そもそもpythonは以下のようにメソッドの引数に名前をつけて渡せる
def hoge(fuga, yap): return fuga + yap print hoge(yap="foo", fuga="bar") #=> barfoo
なのでview(controller)に変数を渡すのが楽?というわけではないけど便利
symfonyの場合は色々yamlに書く。collectionとか便利。object自体を設定して $this->getRoute()->getObject()とかも出来る。
コントローラー
djangoの場合色々importしないといけない。symfonyは全部autoloadしてる。どっちがいいとは言えないけど。djangoはショートカットがやたら充実してる。
ビュー
djangoのテンプレートは継承出来る。便利。symfonyは出来無い。悲しい。2.0から出来るんだっけ?
モデル
0から作るときにdoctrineとかpropelみたいにスキーマをyamlとかに書いてそこから作るのではなくて、djangoの場合はmodelのファイルに書いてそこから生成する。
propelにはマイグレーションの生成機能がない。doctrineとかdjangoのにはある。
フォーム
symfonyの場合はbuild --form みたいなのをしてschemaから自動生成する。djangoの場合は自分でクラスを書く。といっても継承するだけなので別に簡単。
個人的にはsymfonyの場合baseとなるformはabstractというのが気に入らないので、それならいっそのこそdjangoのような方が好き。
管理画面
両方共便利。django0.96だかの場合モデルにadminの設定を書いてたのでそれはどうなのかーとか思ってたけど、新しい方だとそんなことはないみたい。
ちなみにかっこよさはdjangoが圧勝
ドキュメント
symfonyの圧勝。
残り
ルーティングの所で既にめんどくさくなった。pythonの方がかっこいいけど、慣れてないのでめんどくさい。
- 12 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=symfony+独自のyml コンフィグキャッシュ&btnG=検索&lr=la
- 10 http://d.hatena.ne.jp/zariganitosh/20090628/1246186477
- 10 http://twitter.com/soh335
- 8 http://www.symfony-project.org/blog/2010/02/07/a-week-of-symfony-162-1-7-february-2010?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+symfony/blog+(symfony+Project+Blog)&utm_content=livedoor
- 5 http://pipes.yahoo.com/pipes/pipe.info?_id=f8e50936209277c7946c9bc16b988bf7
- 5 http://twitter.com/
- 4 http://search.yahoo.co.jp/search?p=第四十工房跡地&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=0&oq=第四十工房
- 4 http://www.google.co.jp/reader/view/
- 4 http://www.google.co.jp/search?hl=ja&lr=&rlz=1B3GGGL_jaJP332JP333&tbs=qdr:y15&q=第四十工房跡地&start=10&sa=N
- 4 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja:official&hs=ZbV&q=LOSTMAN+GO+TO+BUDOKAN+初回限定盤&btnG=検索&lr=&aq=f&oq=


