2009年のPHPフレームワーク

118
2009 年年 PHP 年年年年年年年 年年年年 RYUS 年年年年

description

LOCAL PHP部 札幌勉強会02(ちょっと豪華なフレームワーク特集) 2009年のPHPフレームワーク http://labs.nazone.info/

Transcript of 2009年のPHPフレームワーク

Page 1: 2009年のPHPフレームワーク

2009年の PHPフレームワーク株式会社 RYUS佐藤琢哉

Page 2: 2009年のPHPフレームワーク

※注意事項•フレームワークわかったよね!•さわださんのプレゼンで理解したという前提の内容です

•詰め込んでしまったので説明が薄かったらごめんなさい

•フレームワーク自作の話は出てきません

Page 3: 2009年のPHPフレームワーク

アジェンダ•自己紹介•フレームワーク紹介•フレームワークで注目すべき点•フレームワーク比較•比較まとめ•これからのフレームワーク

Page 4: 2009年のPHPフレームワーク

自己紹介•佐藤琢哉•nazo•株式会社 RYUS所属

▫上京して就職したいという方は是非弊社へ

Page 5: 2009年のPHPフレームワーク

自己紹介•北海道旭川市出身

▫明日が兄の結婚式なので来たのがきっかけ▫18歳で上京▫ゲーム→Web

Page 6: 2009年のPHPフレームワーク

自己紹介•rhaco-ja•himote.jp•http://d.hatena.ne.jp/nazone/•実は代表的な制作物がない•実はまともな勉強会で喋るのは初めて

Page 7: 2009年のPHPフレームワーク

自己紹介•フレームワーク利用履歴

▫Ruby On Rails▫CakePHP▫symfony▫rhaco▫Ethna

Page 8: 2009年のPHPフレームワーク
Page 9: 2009年のPHPフレームワーク

■彼氏が素の PHPでコード書いてた。別れたい…素の PHP だとコードレビューの時なんか恥ずかしいww下向いちゃうしww男にはせめてフレームワーク使って欲しい・・・mysql_query 直書きとかされたら・・・・もう最悪wwせめて普通に CakePHP や symfony ぐらいは使って欲しい。常識的に考えて欲しいだけなんです!素の PHP のコードを見せられた時の恥ずかしさとか分かる?あのね?たとえば週末 10??20 人ぐらいで勉強会とか行くでしょ?それぞれ自分の使ってるフレームワークネタとか出すわけじゃな

い?みんな普通に CakePHP や symfony や ZendFramework や Ethna

を使ってるわけでしょ?素の PHP でノコノコついてったら大恥かくでしょうがww

Page 10: 2009年のPHPフレームワーク

フレームワーク紹介の前に•PHPのフレームワーク多すぎじゃね?

Page 11: 2009年のPHPフレームワーク

EthnasymfonyCakePHP

ZendFrameworkMaple

CodeIgniterPiece Framework

rhacoAgaviSabelAkelos

MagicWeaponZoop Framework

ちいたんMoonyPRADO

Seasar.PHPP4A

PHP on TRAXMojaviHorde

HarmoniSimframe

guesswork classicPhrameSeagull

BlueShoesWACT

PhilotPetitwork

KAHOeZComponentsAmbivalence

ATKStudsTonic

W3matterEnormeYii

etc...

Page 12: 2009年のPHPフレームワーク

多すぎ•さらに同じフレームワークでもバージョンによって全然違ったりする▫CakePHPとか▫symfonyとか▫Mapleとか

Page 13: 2009年のPHPフレームワーク

とりあえず絞る•Ethna•symfony•CakePHP•ZendFramework•Maple•CodeIgniter•Piece Framework•rhaco•Sabel•Yii Framework

Page 14: 2009年のPHPフレームワーク

PHPのフレームワーク多すぎじゃね?

•なんでこんなに多いの?▫作りやすい▫動かしやすい▫自分の好みに合わせたい

Page 15: 2009年のPHPフレームワーク

作りやすい•標準機能が豊富

▫DB接続▫日本語変換(mbstring)

•自身がテンプレートエンジン(あるいはSmarty)

Page 16: 2009年のPHPフレームワーク

動かしやすい•書けばすぐ動く

▫mod_php▫他言語だとWSGIとか Rackとか

•どのレンタルサーバーでも大体動く

Page 17: 2009年のPHPフレームワーク

自分の好みに合わせたい•ユーザーが多い•好みも多様化

Page 18: 2009年のPHPフレームワーク
Page 19: 2009年のPHPフレームワーク

フレームワークで注目すべき点•Rails以前 /以後•MVC•フルスタックかどうか•ライフサイクル•その他機能

Page 20: 2009年のPHPフレームワーク

よく聞く意見「フレームワーク使いたいんだけどどれがいいの?」「 Cake か symfony じゃね?」←ぺちぱー「うちで○○使ってるけどそれなりに使えたよー」←よく訓練されたぺちぱー

       ./        ; ヽ        l   _ ,,,,,,,, _ ,;;;;i        l l''|~___;; 、 _y__ l ミ ;l         ゙ l;| | `'",;_,i`'"|;i |       ,r''i ヽ , '~r ー j`c=/      , /  ヽ  ヽ ` ー "/:: ` ヽ   /     ヽ   ̄ ゙ 、 :::::   ゙ l,  ホント ぺちぱーは地獄だぜ! フゥハハハーハァー |;/"⌒ ヽ ,   \  ヽ :    _l _         ri                

     ri l l     ヽ r‐─ ヽ_ |_⊂////;` ゞ --―─-r| |                    / |  ゙ l ゙ l,      l,| `゙゙゙ ''―ll _ __l,,l,|,i 二二二二│`ノ """"""""""""| 二 ;; 二二 ;; 二二二

i≡ 二三三 l | ヽ     ヽ    _| _  _        "l  ̄ ̄ ̄ ̄ ̄ ̄ | 二 ;; 二二 ;; 二

='''''''''''  ̄ ノ /" ヽ     'j _/ヽヽ ,  ̄ ,,,/"''''''''''''⊃r‐l' 二二二 T  ̄ ̄ ̄  [ i ゙ ''''''''''''''''"  ゙゙゙̄

`" /  ヽ    ー── ''''''""(;;)    `゙ ,j"    |   | |

Page 21: 2009年のPHPフレームワーク

Rails以前•strutsもどき

▫今みたいな便利機能は少ない▫Smartyが大人気▫O/Rマッパーがあまり知られてなかった

Page 22: 2009年のPHPフレームワーク

Railsで出てきた機能•scaffoldの有無

▫「 10分でブログを作る!」のあれ▫実際は役に立たないことのほうが多い▫管理画面を作るのに使えるかも程度▫カスタマイズしやすい作りになっているのもある

Page 23: 2009年のPHPフレームワーク

Railsで出てきた機能•DRY(Don't repeat yourself)

▫同じコードを2度書かない▫やりかたは様々▫そもそも PHPだと限界が…▫基本ライブラリの充実でカバー

Page 24: 2009年のPHPフレームワーク

Railsで出てきた機能•テスト環境が用意されてる

▫TDD(test-driven development)ができる▫詳しくはこの後の kunitさんのお話で!

Page 25: 2009年のPHPフレームワーク

Railsで出てきた機能•O/Rマッパー

▫データベースと接続するあれ▫ActiveRecordパターンが多い▫Rails以前は (PHP界では )O/Rマッパー何それな空気だった(かもしれない) 無かったわけではないと思う

Page 26: 2009年のPHPフレームワーク

何だかんだで Railsはすごい•「 Rails世代フレームワーク」という名称•CakePHPは Railsとほぼ同じ構成•他のフレームワークでもどこかしら影響を受けている

Page 27: 2009年のPHPフレームワーク

んじゃ Railsのほうがいいんじゃね?

•PHPならではのメリットもある▫環境が作りやすい▫馴染みのある言語▫PHPで使いやすいようにアレンジ

•後発の強み

Page 28: 2009年のPHPフレームワーク

MVC

•きっと説明済だと思うので省略

Page 29: 2009年のPHPフレームワーク

そもそもフレームワークとは•Webサイトを作りやすくするための仕組み

▫広義では CGIもフレームワーク▫Apache(コントローラー)→スクリプト(ロジック)

Page 30: 2009年のPHPフレームワーク

MVC

•MVCパターン▫Model(ロジック)▫View(テンプレート)▫Controller(M-Vの中継)

Page 31: 2009年のPHPフレームワーク

MVC

•MVC以外のフレームワークもある▫正直説明できないので省略▫Java界隈に多いかも?

Page 32: 2009年のPHPフレームワーク

MVC

•MVCだと何がいいの?▫Model(ロジック)と View(テンプレート)の分離

▫きっとこの前の人が喋ってくれてるはず

Page 33: 2009年のPHPフレームワーク

フルスタック•全部入り•PHPは PEARがしょぼいせいかフルスタックが多い▫openpearに期待

•Perlは CPANが元気なのでフルスタックじゃないフレームワークが強い

Page 34: 2009年のPHPフレームワーク

ライフサイクル•ちゃんとメンテされてる?•コミュニティは活発?•突然極端な変更されたりしない?

▫no trunk no (略

Page 35: 2009年のPHPフレームワーク

その他•ステートレス /ステートフル

▫多分 PHPでは Pieceだけ(あと Sabelがちょこっと)

▫ステートフル=入力データが複数画面に渡って継続して保持される

▫Javaでは人気?▫http://www.slideshare.net/yoshiori/ss-

268210/

Page 36: 2009年のPHPフレームワーク

その他•DI/AOP

▫DI(依存性注入)▫AOP(アスペクト指向プログラミング)▫既にある機能を直接変更せずにあれこれする▫主に Javaで流行っている▫LLではそもそもクラスの書き換えが簡単なため( PHPはそれほど楽ではないが)、そこまで必要とされない

Page 37: 2009年のPHPフレームワーク

その他•対応DB

▫MySQLはほとんどので対応されてる▫次点は PostgreSQL/SQLite▫Oracleとか使う人もたまにいる

Page 38: 2009年のPHPフレームワーク

フレームワークで注目すべき点•これらを踏まえて、各フレームワークが具体的にどういう実装になっているか見ていきましょう

Page 39: 2009年のPHPフレームワーク
Page 40: 2009年のPHPフレームワーク

~国内知名度No.1(Google Trends調べ)~

Page 41: 2009年のPHPフレームワーク

CakePHP

•最近国内でカンファレンスまでやった▫海外から開発者が!

•盛り上がりは間違いなくNo.1

Page 42: 2009年のPHPフレームワーク

CakePHP

•「 Railsを PHPで」•Railsを PHPに移植しようと思ったけど PHP4の機能じゃとても作れないので PHPになじむようにアレンジしたフレームワーク

•いろんなところで Railsに似ている▫MVC、 ActiveRecord

•「 Cakeのやり方に合わせるとものすごく簡単に書ける」

Page 43: 2009年のPHPフレームワーク

CakePHPフォルダ構造

Page 44: 2009年のPHPフレームワーク

CakePHP – Modelclass Article extends AppModel{ var $name = 'Article'; var $useTable = 'article'; var $hasAndBelongsToMany = array( 'Category' => array( 'className' => 'Category', 'joinTable' => 'category_list', 'conditions' => "", 'order' => '', 'dependent' => true, 'foreignKey' => 'article_id', 'associationForeignKey' => 'category_id', 'unique' => false, 'limit' => null, ) ); }

※ http://project-p.jp/halt/anubis/blog_show/999

Page 45: 2009年のPHPフレームワーク

CakePHP

•コミュニティが活発なので誰かが教えてくれる•1.2がまだリリースされてないけど、今から覚えるなら 1.2

•書き方を縛られるのは嫌な人はちょっと?

Page 46: 2009年のPHPフレームワーク

~洗練されたフルスタックフレームワーク~

Page 47: 2009年のPHPフレームワーク

symfony

•CakePHPと並ぶ知名度•元はMojaviからの派生プロジェクト•実務利用で作ったフレームワークをオープンソース化

•日本でも Cake、 Ethnaに並ぶ利用率

Page 48: 2009年のPHPフレームワーク

symfony

•PHP5専用•Mojaviライクな filterシステム•Propelとの強力な連携•無駄に多いプラグイン•何でも YAML•フォルダ構造が深い•キャッシュをうまく使わないと遅め

Page 49: 2009年のPHPフレームワーク

symfonyフォルダ構成

Page 50: 2009年のPHPフレームワーク

symfony – YAMLでテーブル定義propel: table1:

table2: code: varchar(255) _foreign_keys: fk_1: foreign_table: table1 references: - foreign: id local: code on_delete: cascade on_update: set null

※ http://blog.symfony.jp/2006/12/18/schema-yml/

Page 51: 2009年のPHPフレームワーク

symfony

•1.2がリリースされたので 1.2を覚えておくといいかも?

•フォルダ構造が複雑なため、シェルで全部書く人にはちょっと辛いかも

•規模の大きい開発をする人は検討したほうがいい

Page 52: 2009年のPHPフレームワーク

~国産といえばこれ~

Page 53: 2009年のPHPフレームワーク

Ethna

•GREEの藤本さんが中心になって開発(最近はあまり関わってない?)

•GREEは Ethnaで動いているという実績•フルスタックではない•国内にコミッタ多数

Page 54: 2009年のPHPフレームワーク

Ethna

•Strutsっぽい•やや Rails前世代•強力な ActionForm•DB周りは貧弱•Smartyを使うこと前提

Page 55: 2009年のPHPフレームワーク

Ethnaフォルダ構成

Page 56: 2009年のPHPフレームワーク

Ethna – フォーム定義class Flare_Form_IndexTest extends Ethna_ActionForm {

var $form = array( 'mailaddress' => array( 'name' => 'メールアドレス ', 'required' => true, 'max' => 255, 'filter' => FILTER_HW, 'custom' => 'checkMailaddress', 'form_type' => FORM_TYPE_TEXT, 'type' => VAR_TYPE_STRING, ),...

※http://labs.gree.jp/Top/Document/20060707.html

Page 57: 2009年のPHPフレームワーク

Ethna

•O/Rマッパーは無いようなものなので(あるけど)、自分である程度カスタマイズできる人向け

•国内実績が多いので業務では使いやすいかもしれない

•国内利用者が多いので参考資料は見つけやすい

Page 58: 2009年のPHPフレームワーク

~あの Zendが作った!~

Page 59: 2009年のPHPフレームワーク

Zend Framework•あの Zendが作った!

▫という安心感?•標準機能が豊富すぎる

▫豊富すぎて一部分だけ切り出して使う方法がメジャーに

▫Symfonyは ZFのプラグインをそのまま使える機構が用意されている

•1.0リリースまでに時間がかかったため出遅れた感が強い▫最近は事例も増えてきた(公式で見れます)

Page 60: 2009年のPHPフレームワーク

Zend Framework

•そのままだと何もない•MVC部分は結構すっきりしてる•大量のクラス群

▫独自の世界を構築▫Twitter操作ライブラリとか OOoドキュメント操作ライブラリまである

▫Full Packageだと tgzで 21MB!•細かいコーディング規約

Page 61: 2009年のPHPフレームワーク

Zend Framework - Controller<?phprequire_once 'Zend/Controller/Action.php';require_once 'Zend/Date.php'; //Zend_Dateコンポーネントの呼び出し

class WingsController extends Zend_Controller_Action

{ public function codezineAction() { $date=new Zend_Date; // (1) $this->view->assign('dt', $date->get(Zend_Date::TIMES)); // (2)

}}

※ http://codezine.jp/article/detail/2162?p=1

Page 62: 2009年のPHPフレームワーク

Zend Framework

•symfony同様、 PHP5で大規模開発したい人にはお勧め

•ライブラリだけ使うことも検討

Page 63: 2009年のPHPフレームワーク

~高速フレームワーク~

Page 64: 2009年のPHPフレームワーク

CodeIgniter

•超高速▫フレームワークのベンチマークを取ると絶対1位になるフレームワーク

▫Cakeの倍くらいの速度?•構造自体は Cakeに似た感じ

Page 65: 2009年のPHPフレームワーク

CodeIgniterフォルダ構造

Page 66: 2009年のPHPフレームワーク

CodeIgniter

•それなりに Rails系MVC•テンプレートエンジンは素の PHP•それなりの機能のO/Rマッパー•複雑な機能をできるだけ持たないことで高速化•低機能というわけでもない

Page 67: 2009年のPHPフレームワーク

CodeIgniter - Controller<?php

class Welcome extends Controller {

function Welcome(){

parent::Controller();}

function index(){

$this->load->view('welcome_message');}

}

※CodeIgniter1.7.0付属のwelcome.phpより

Page 68: 2009年のPHPフレームワーク

CodeIgniter

•そこそこの機能さえあれば開発できる人ならお勧め

•速度を気にする人は検討してみるといいかも

Page 69: 2009年のPHPフレームワーク

~国産の有力候補~

Page 70: 2009年のPHPフレームワーク

Maple

•kunitさん(この後登場!)作成のフレームワーク

•NetCommons2.0はMaple3ベースで作られている

•現在Maple4が制作中

Page 71: 2009年のPHPフレームワーク

Maple

•詳しくは kunitさんに聞こう!(この後話が聞けると思います)▫丸投げとも言う

Page 72: 2009年のPHPフレームワーク

~ステートフルフレームワーク~

Page 73: 2009年のPHPフレームワーク

Piece Framework

•PHP唯一?のステートフルを前面に打ち出したフレームワーク

•国産•Eclipse用 IDEも用意

▫ステート作成とかが簡単に

Page 74: 2009年のPHPフレームワーク

Piece_IDE

Page 75: 2009年のPHPフレームワーク

Piece Framework

•各コンポーネントが分離されている▫Piece_Unity▫Piece_ORM▫Piece_Right▫Piece_Flow▫etc…

•ステートフルなので根本的に違う▫フローを YAMLで書いて中身を実装

Page 76: 2009年のPHPフレームワーク

Piece Framework – フロー定義firstState: DisplayNew

lastState: name: DisplayNewFinish view: http://example.org/list.php

viewState:

- name: DisplayNew view: New transition: - event: DisplayNewConfirmFromDisplayNew nextState: DisplayNewConfirm

- name: DisplayNewConfirm view: NewConfirm transition: - event: DisplayNewFinishFromDisplayNewConfirm nextState: DisplayNewFinish - event: DisplayNewFromDisplayNewConfirm nextState: DisplayNew

※ http://gihyo.jp/dev/serial/01/piece/0005

Page 77: 2009年のPHPフレームワーク

Piece Framework

•新しいもの好きならお勧め•アンケート系のような、入力が多数の画面に渡るようなものでは強いかも

Page 78: 2009年のPHPフレームワーク

~ hentai++~

Page 79: 2009年のPHPフレームワーク

rhaco

•国産•フレームワークと言われると?•Web画面からいろいろ設定ができる•1系はもう頻繁な更新はない( no trunk no

rhacoではない)

Page 80: 2009年のPHPフレームワーク

rhacoのWebセットアップ画面

Page 81: 2009年のPHPフレームワーク

rhaco

•コントローラーとかはあるけど使わなくてもいい(エントリーポイントとか用意されてない)

•継承ができるテンプレートエンジン•複雑なクエリも投げれるO/Rマッパー•強力なHTML/XMLパーサ•DocTest

Page 82: 2009年のPHPフレームワーク

rhaco - DocTestfunction is($varible,$base=true){/*** * $bool = true; * eq(true,Variable::is($bool,true)); * eq(false,Variable::is($bool,false)); * * $bool = false; * eq(false,Variable::is($bool,true)); * eq(false,Variable::is($bool,false)); * */return ($base && Variable::bool($varible));

}

Page 83: 2009年のPHPフレームワーク

rhaco

•個人でレンタルサーバとかでさっくり作るなら強い

•HTMLや XMLをパースしてあれこれやるならお勧め(マッシュアップとか)

•Lingrでいつでも質問できる!

Page 84: 2009年のPHPフレームワーク

http://www.lingr.com/room/rhaco-ja

Page 85: 2009年のPHPフレームワーク

~国産の次世代フレームワーク~

Page 86: 2009年のPHPフレームワーク

Sabel

•国産•ステートフルっぽい書き方もできる•アノテーション•基本機能が充実

Page 87: 2009年のPHPフレームワーク

Sabel – アノテーション<?php

/** * @flow continuation userForm */class Index_Controllers_Register extends Sabel_Controller_Page{ ... /** * @httpMethod post * @flow next doRegister correct */ public function confirm() { $this->form->applyPostValues($this->userForm); if (!$this->userForm->validate()) { $this->view->setName("prepare"); } }}

※ http://www.sabel.jp/tutorial/blog/p1_1

Page 88: 2009年のPHPフレームワーク

Sabelフォルダ構造

Page 89: 2009年のPHPフレームワーク

Sabel

•DI、 AOP•ステートフル•複数のテンプレートエンジンを使える( Sabel独自、 Smarty, Simplate, Savant3)

•ユニットテストや国際化、マイグレーションも•しかし使われているところを見ない

Page 90: 2009年のPHPフレームワーク

Sabel

•いろんな機能を使ってみたい人向け•アノテーションとかを積極的に使わないともったいない

•1.2系はまだドキュメントが充実していないので 1.1系推奨

•ちょっと凝りすぎ?

Page 91: 2009年のPHPフレームワーク

~期待の新人~

Page 92: 2009年のPHPフレームワーク

Yii Framework

•読み方は「イー」•Pradoの人が作ってるっぽい?•Rails系だが、かなり symfony色が強い•後発なのでいろいろ強いかもしれない

Page 93: 2009年のPHPフレームワーク

Yii Framework

•いろんなフレームワークを参考にしてる(主にRailsと symfony)

•Railsっぽい ActiveRecordをちゃんと実装•symfonyっぽい filter、キャッシュ、プラグイン機能

•Pradoのテンプレートエンジンも使える

Page 94: 2009年のPHPフレームワーク

Yii Frameworkフォルダ構造

Page 95: 2009年のPHPフレームワーク

Yii Framework

•まだ 1.0がリリースされた直後なので、先取りしたい人向け

•伸びるかどうかは不明だが伸びそうな気配はある

•ちょっとバグっぽい挙動が(特に cli周り)

Page 96: 2009年のPHPフレームワーク
Page 97: 2009年のPHPフレームワーク

どれ使えばいいの?•PHPのバージョン•開発規模•過去の資産•特殊機能•変態度

Page 98: 2009年のPHPフレームワーク

PHPのバージョン•4系のサポートは終了しています!•でも業務上使わないといけないこともある•5の機能わかんねーよ!って人も•CakePHP/Ethna

Page 99: 2009年のPHPフレームワーク

開発規模•大きくなると出てくる問題

▫各環境で設定を切り替える▫デプロイ▫テスト▫スケーリング

•Symfonyは YAMLでの設定切り替えが強い /デプロイ機構もある

•テストは結構どれにでも付いてる•DocTest(Maple/rhaco)

Page 100: 2009年のPHPフレームワーク

過去の資産•PEARとの連携

▫Ethna•最近のフレームワークは PEARを使わない方向が多い

Page 101: 2009年のPHPフレームワーク

特殊機能•どっかの APIと連動とかー•ライブラリの多さに定評のある Zend

Framework•HTMLパーサーが高機能ならどうにかなるかも

Page 102: 2009年のPHPフレームワーク

変態度•もちろん rhaco•PHPでDIとかステートフルとかも十分変態だと思う

Page 103: 2009年のPHPフレームワーク

現実的に今使うなら?•とっつきやすさ: CakePHP•大規模: Symfony•正直あんまりマイナーなフレームワークを使っても仕方ない

•という無難な回答•自力でフレームワークの使い方を開拓できるような人は何使うかくらい判断できるはず

Page 104: 2009年のPHPフレームワーク

PHP以外という選択肢は?•一人で使うなら PHPが一番じゃない?(レンタルサーバ的な意味で)▫最近は VPSとか安くなってきてるからどうにかなるかも?

•複数人で使うなら他の人のスキルに合わせる必要がある▫「俺 Ruby好きだから Railsね!」は KY▫「俺 Scala好きだから liftね!」とか(略▫「俺 Gauche好きだから Kahuaね!」(略

Page 105: 2009年のPHPフレームワーク

新しいフレームワークを使うなら•自分でコミュニティを開拓する気力が必要•業務で使う場合に実績がないものをどうやって説得するか?▫事前に個人で実績を作ってしまうとか

Page 106: 2009年のPHPフレームワーク
Page 107: 2009年のPHPフレームワーク

PHP4サポート終了•PHP4対応のフレームワークも PHP5に移行する動き▫rhaco2▫Maple4

•PEAR2も PHP5専用になる予定

Page 108: 2009年のPHPフレームワーク

PHP5.3

•いつ出るの?•フレームワーク作成に便利な機能が沢山

▫closure、 namespace、 Dynamic Static Call...

•5.3専用フレームワーク?

Page 109: 2009年のPHPフレームワーク

DIとか AOPとかってどうよ?•そこまでやりたいなら Javaに行けば?•どうしてもやりたい人のための選択肢は既に存在する

•そこまで求められるケースが少ない(言語的に)

Page 110: 2009年のPHPフレームワーク

ステートフルってどうよ?•概念的には凄く便利•入出力が多いアプリケーション(アンケート系?)とかには便利かも?

•設定する手間

Page 111: 2009年のPHPフレームワーク

設定ファイルの書き方•XML/YAML/PHP•XMLは嫌われる方向にあるが、書き方によっては便利

•PHP直接は書きやすいが、 PHP自体の表現力が厳しい

•YAMLは書きやすいが意外と仕様が複雑

Page 112: 2009年のPHPフレームワーク

携帯対応•海外では無縁なので本体が対応されることはない▫国産の活躍しどころ?

•プラグインで対応が多い•根本から変化する技術ではないが、独特のものが多い

Page 113: 2009年のPHPフレームワーク

MVC以外の価値•運用

▫Deploy▫バージョン管理(migration)▫テスト

•負荷対策▫キャッシュ機構▫複数 DB対応

Page 114: 2009年のPHPフレームワーク

ajax対応•別にいらなくね?•ものによる•PHP側としては基本的には jsonと xmlが簡単に入出力できれば十分

•sfModalBoxPlugin▫symfonyのMVCと上手く連動

•Cometとかファイルアップロード進捗とかはどっちにしろそのままじゃ無理

Page 115: 2009年のPHPフレームワーク

フレームワークで悩んでいいのは小規模までだよねー•大規模になると

▫O/Rマッパーが根底から別の要求になる▫RDBMSいらない

•いろんなサーバーにいろんなアプリケーションが乗っかって1つの大きなアプリケーションになる▫現在のフレームワークは1サーバ1アプリケーションで完結することが前提

▫そういう開発のほうが圧倒的に多いが…

Page 116: 2009年のPHPフレームワーク

逆に超小規模なのは?•rhacoが便利•Cakeですら大規模に思えるケース•使い捨てアンケートフォームとか•いっそのこと素の PHP

▫PDO使えばそれなりに組める•Perl界で軽量フレームワークブーム

▫PHPは元々それができる

Page 117: 2009年のPHPフレームワーク

まとめ•その機能が必要なのかを検討することが必要•自分でコミュニテイを盛り上げるくらいの気持ちが必要

Page 118: 2009年のPHPフレームワーク

おわり•ご静聴ありがとうございました