Version 71 (modified by 14 years ago) (diff) | ,
---|
OpenPNE3ノート
【3.0切捨機能フォロー】レビュー機能
3.0では現在のレビュー機能を廃止しようと思います。 日記、小窓などを組み合わせることで、同等以上の機能を実現します。
レビューの新規登録
URL2CMD
レビューは各外部サイトからURL2CMDによって新規登録します。
レビューの閲覧【個別】
日記
プロフィール(メンバー・コミュニティ)
トピック
レビューの閲覧【一覧】
小窓リスト
小窓ランキング
PHPフレームワークの選定
参考情報
Googleトレンド調べ
上記のフレームワーク中から選びます。
フレームワーク選定の要件
評価マトリックス
- | ZendFramework | CakePHP | symfony | ethna | maple | CodeIgniter?? | コメント |
Googleトレンドの人気 | 3位 | 1位 | 2位 | - | - | 4位 | - |
ドキュメント量 | ◎ | ○ | ◎ | △ | △ | ? | - |
ユーザー構築情報 WEBでの使用感のレポートの量 | - | - | ○ | - | - | - | - |
[DB]PostgreSQL MySQL SQLiteを抽象化 | - | - | ○ | - | - | - | - |
DBのMasterSlave?読み分け 更新系と参照系を振分ける仕組みが入っているか OpenPNEでいうところのmainとmain_reader | - | - | △ pluginで対応可能 | - | 無 | - | - |
部分SSL対応 | - | - | △ pluginで対応可能 | - | 無 | - | - |
Sessionストレージ変更(File DB Memcache) | - | - | ○ | 無 | 無 | - | - |
[SlavePNE]POP3 DB HTTP LDAP対応できるか? PEAR::Authのcontainer的なものがあるか? | - | - | ○ | ○ xmlrpcでのアプリケーション作成がデフォルトでできる | 無 | - | - |
携帯UAの機種振り分け | - | - | △ | - | 標準では△ →を使えば実装可能 | - | pearUsegAgentMobile |
携帯認証カバー(個体識別 キャリアUA) | - | - | × | - | 標準では△ →を使えば実装可能 | - | UsegAgentMobile |
携帯絵文字 | - | - | × | 無 | 標準では無 →を使えば実装可能 | - | MobilePictgram |
日本語メール送信出来るか? | - | - | ○ | ○ | ○ | - | - |
日本語メール受信して処理出来るか?(絵文字含む) | - | - | △ | △ 絵文字は非対応 | △ 絵文字は非対応 | - | - |
SQLインジェクションカバー プレースフォルダを使えるか? | - | - | ○ | ○ | ○ | - | - |
CSRFカバー doアクションでワンタイムトークン的なものがつかえるか | - | - | ○ pluginで対応可能 | ○ | - | - | - |
XSSカバー OpenPNEはsmartyの出力時にチェックしてる | - | - | ◎ | - | - | - | - |
テンプレートエンジンに選択自由度があるか? OpenPNEはsmartyのみ。 | - | smarty使えない | smartyは、 pluginを使えば使える | Smarty | Smarty Flexy Simple | - | - |
[ktai URL]/.ZsrMKtQAyh9GHdXP./member/1 携帯の認証について | - | - | △ | - | - | - | - |
国際化対応レベル | - | - | ◎ | - | - | - | - |
パフォーマンス(FWでの劣化) | - | - | △ | - | - | - | - |
パフォーマンス(FW機能による高速化) | - | - | ○ | - | - | - | - |
[DB]members id member_id ?手嶋確認 | - | - | ? | - | - | - | - |
[URL]/member/1 /community/1 mod_rewrite使えるってこと? | - | ○ | ○ | - | - | - | - |
サポートの継続 開発体制 | ◎ | ○ | ○ | ○ | △ 昨年度開発がほぼ停止のため | - | - |
OpenID Consumer対応 | ライブラリ有り | - | pluginで対応可能 | - | - | - | - |
OpenID Provider対応 | ライブラリ有り | - | ? | - | - | - | - |
OpenSocial Container | - | - | - | - | - | - | - |
小窓 | OK | OK | OK | OK | OK | OK | - |
PHP小窓 smartyのplugin的なことができるか? | - | - | ○ | ○ デフォルトでそんな機能があるそうです | △ filterを自作する必要があります | - | - |
ページキャッシュ smartyのキャッシュ的なものがあるか? | - | - | ◎ | - | - | - | - |
ページコンポーネントごとキャッシュ smartyのキャッシュ的なものがあるか? Templateインクルードとかで。 | - | - | ◎ | - | - | - | - |
クエリキャッシュ adodbとかそのレイヤーのこと。 | - | - | ◎ | - | - | - | - |
OpenPNEサンプルコーディングの結果 | 未 | 未 | 未 | - | - | 未 | - |
テストフレームワークの有無 rubyみたいな | - | - | デフォルトで○ | - | 無 | - | - |
サポートするPHPバージョン | 5 | 4 5 | 5.1 | 4 5 | 4 5 | 4 5 | - |
一般のレンタルサーバで使えるか? php,mod_rewriteなど | - | - | ○ | ○ | ○ | - | - |
リクエストパラメーターの変換が容易か? 「全角→半角」変換するようなコード | - | - | filterでできる | - | ○ | - | - |
Validationの実装が容易 | - | - | ○ | - | ○ | - | - |
action, filter実行時のログ出力機能が標準で備わっている | - | 無 | ○ | - | ○ | - | - |
actionの自動生成機能があるか | - | ○ | ○ | ○ | ○ | - | - |
viewの自動生成機能があるか | - | ○ | ○ | ○ | ○ | - | - |
O/R マッパー | ○ | ○ | ○ | ○ | △ 開発者が推奨しない | - | - |
DI機能 | - | - | × | △ 開発中 | ○ | - | - |
他プロジェクトとの連携 | - | - | △ | - | Seasar Usagi | - | - |
似ているフレームワーク | JSF | Ruby On Rail | Ruby On Rail | Struts | Struts | - | - |
フレームワークでの文字モジコード設定 | - | - | × | - | ○ | - | - |
Ajaxを使うモジュールを作成する機能が標準で入っているか Ajax用Javascriptを書かなくていい、など | - | ○ | ○ | △ 多少は書く必要があります | 無 | - | - |
設定ファイルの記述キジュツ方式ホウシキ | - | ini, php | yml,ini | - | ini | - | - |
国内大規模サイトでの開発・運用実績 | - | - | △ link yahooブックマーク | ◎ http://gree.jp/ | ○ link link | - | - |
国内開発用メーリングリスト | ◎ 国内ML多数 | ○ | ○ | ◎ 国内ML多数 | ○ 2007年はほぼ休止していた | - | - |
その他条件
- DB抽象化されていて、PostgreSQL MySQL SQLiteがシームレスに利用できる?
- チューニング目的以外では、セットアップ、DB操作のSQLは1パターンのみで運用可能
- 携帯の特殊な挙動に対して、フレームワークでカバーできるか?
- Smartyテンプレートを使用できるか?(もしくは置き換えるに値する素敵なテンプレートエンジンを使えるか?)
- パフォーマンスが劣化しないか?
- ドキュメントが充実しているか?
- 今後サポートが継続されそうか?
- テスト関連のフレームワークが備わっているか?
- 国際化対応の機構が組み込まれているか?
- トレンドなのでRailsをある程度意識していて欲しい
考慮しなくても良い要件
- OpenPNE2系からの移行に伴う作業負荷は考えない
- PHP5限定のフレームワークでも良い
参考情報
IBM developerWorksの比較記事
http://www.ibm.com/developerworks/opensource/library/os-php-fwk1/ http://www.ibm.com/developerworks/opensource/library/os-php-fwk2/ http://www.ibm.com/developerworks/opensource/library/os-php-fwk3/ http://www.ibm.com/developerworks/opensource/library/os-php-fwk4/ http://www.ibm.com/developerworks/opensource/library/os-php-fwk5/
CakePHP
概要
Ruby on Railsを強く意識
- 活発でフレンドリーなコミュニティ
- 柔軟なライセンス
- PHP4 と PHP5 での互換性
- データベースと連携し、クエリを簡略化するための CRUD が統合済み
- アプリケーションの Scaffolding(足場組み)
- モデル ビュー コントローラ (MVC) アーキテクチャ
- 見栄えのよいカスタム URL を実現するリクエストディスパッチャー
- バリデーションが組み込まれている
- 高速で柔軟なテンプレート機能 (PHP 構文。各種ヘルパーが付属)
- AJAX, Javascript, HTML フォームなどのための各種ビューヘルパー
- セキュリティ、セッション、リクエストなどを処理するコンポーネント
- 柔軟なアクセスコントロールリスト
- データのサニタイズ
- 柔軟なビューのキャッシュ
- Webサイトのサブディレクトリでも動作。Apache はまったくいじらなくてよいか、わずかな設定のみ。
ZendFramework
足場機能(scaffold)
- いまのところ見あたらない
ORマッピング
あまり激しくはやらないみたいだ
http://framework.zend.com/manual/ja/zend.db.select.html
$select = $db->select() ->from( ...テーブルとカラムを指定します... ) ->where( ...検索条件を指定します... ) ->order( ...ソート条件を指定します... );
フィールド名に対して規約での縛りがあまり無い。その代わりリレーションを自動で決定する機構も無い?
この方法は、動的にSELECTを変えたいときに使うそうだ
SQL書かないようにするには下記の方法か?
http://framework.zend.com/manual/ja/zend.db.table.html
symfony
プロジェクト支援
- テーブル作成、プロジェクトビルド、など支援プログラムがある
MVCモデル
DB抽象化概要
- 【symfony】ちょっと設定記述が多いかな、と思った。特に複数テーブルの処理では
DB構築
- 【symfony】YAML形式で記述して、自動テーブル構築、抽象化してそう
リレーションの処理
- 【symfony】$entory->getFeed()->getName()の用にリレーションをたどれる 1:多 ->getFeeds() 多:1 ->getFeed() の用に処理する
キャッシング
CodeIgniter?
- DB抽象化されていて、PostgreSQL MySQL SQLiteがシームレスに利用できる?
- yes
- 携帯は挙動が特殊なので、フレームワークでカバーできるか?
- 拡張すれば可能
- Smartyテンプレートを使用できるか?(もしくは置き換えるに値する素敵なエンジンか?
- 拡張すれば可能(Wikiに非公式ライブラリ有)
- パフォーマンスが劣化しないか?
- たぶん yes。Web上に公開されているベンチマークでは最も高速
- ドキュメントが充実しているか?
- 完全なドキュメント有
- 今後サポートが継続されそうか?
- yes(企業が開発している)
- 国際化対応の機構が組み込まれているか?
- yes(但し、非常に単純。WikiにGettext対応の非公式ライブラリ有)
- OpenPNE2系からの移行に大きな負荷がかからないか?
- 書き直しなのでどんなフレームワークでもある程度負荷はかかると思われます
- トレンドなのでRailsをある程度意識していて欲しい
- Active Record など意識されてます
- PHP5限定のフレームワークでOK
- 4/5とも OK
開発スケジュール
- 【現在】仕様策定、アイデア
- 【2008/02/29】仕様決定
- 【未定】開発XX
- 【未定】ベータ
- 【未定】リリース
OpenPNE3で実現する内容
外部フレームワークを導入
外部フレームワークを導入して、プログラミング全体の構造を規定する。
http://trac.openpne.jp/wiki/pne-framework
ここで検討中。
プロジェクトチケット milestone=OpenPNE3.0
No results
OpenPNE3的なチケット keywords=openpne3
OpenPNE3.0で正式決定したわけでは無い物の、OpenPNE的なチケットを集めます。
※自由にkeywords=openpne3と編集してください。
どのInterSNS機能の実現するか?
最低1つ以上のInterSNS機能を実現する。
テンプレート構造の見直し
フルCSS化をめざしテンプレート構造を再構築する。
どこまで構造を洗練させるか?
- 関数名を何とかしたい
- フレームワーク導入に伴って、 xx4yy => getXXXに変えるかな?
- 命名規則も決めたい
後方互換性の維持レベルをどうするか?
- OpenPNEAPIで提供されているぐらいはほしい
- OP関数は供給したい、関数名は変わっても同等以上の機能は維持したい
PNEBIZを一般モジュールレベルに切り離す
他のモジュールを取り込みやすくするために、PNEBIZ単独で特別扱いすることはやめる。
データ構造
- メンバー
- Memberクラス
- membersテーブル
- フレンドリンク(メンバーリンク)
- MemberLinkクラス
- memberlinksテーブル
- コミュニティ
- Communityクラス
- communitiesテーブル
- コミュニティトピック
- CommunityTopicクラス
- community_topics
- message
- event
- event_topic
- diary
- diary_comment
- permission
メモ
フレームワークメモ
手嶋は WebObjectsが好きだった http://www.apple.com/jp/webobjects/ いずれRuby版OpenPNEも作りたいし、Railsを意識した作りがいいな。
ActiveRecord説明
http://www.railsenvy.com/2007/8/8/activerecord-tutorial
11/3勉強会メモ
OpenPNE3 ■後ろ向き(後方互換性を無視できる) ・フレームワーク ・テンプレートを変える(FULLCSS化) ■前向き(InterSNS) ・人2SNS(複数のSNS) ・MySNS(MyPNE) ・SNS2SNS2アプリ(SNSメンバー限定Twitterみたいな) 認証情報を外部アプリに払い出す(MasterPNE、OpenID、OpenSocial) 貸し会議室、スターバックス(ネーミングライツを取ろう) ・SNS2SNS ・OpenPNE2OpenPNE ・mixi2PNE ・GREE2PNE ・モバゲー2PNE ※具体的に 北海道SNSと千葉SNSを交流 1.各SNSのメンバーのみが参加出来る、特設会場(Twitter)を作成して、そこで限定的に交流できる。(プロジェクト的、制限) 2.どんなSNSに入っていてもいいから、サッカーコミュニティに入っている人たち、横串でコミュニケーションできる。(出会い、発見、つながりを広げる) ・イベントは公開してもいいよね 3.6次の隔たり、LinkedInのOpenPNE版 ※PNEMonsterで出来ないか? 異業種交流会 カルチャークラブ 飲み会 バー、クラブ ■h_homeから始まらない、SNS ---------------------------------------------- 4.PNEMonster ・浮気調査(mixiで、離婚の切り札、作れます) ・SNSの盛り上げに使う(よねすけ、酢鶏) PNEMonsterはOpenPNE3とは切り離して考える ・Appli2SNS(MasterPNE) スタンドアローンSNSが、InterSNSに
1/15 国際化・フレームワーク勉強会メモ
https://trac.openpne.jp/svn/OpenPNE_specification/trunk/3.0/20080115_【3.0】フレームワーク・国際化.mm