Version 80 (modified by 15 years ago) (diff) | ,
---|
OpenPNE3仕様
本WikiにはOpenPNE3仕様に関する、概要説明や仕様などの確定した情報を記載 しています。本Wikiについての草稿や議論は、ノートページに記載してください。
OpenPNE3の制約事項
- PHP5以降限定になります。
- mod_rewrite必須になります。
- DB構造が大幅に変更になります。
- 使われていない機能の統廃合が行われます。
PHPフレームワークの選定
PHPフレームワークを導入します。
参考情報
Googleトレンド調べ
上記のフレームワーク中から選びます。
フレームワーク選定の要件
評価マトリックス
ZendFramework | CakePHP | symfony | CodeIgniter? | |
Googleトレンドの人気 | 3位 | 1位 | 2位 | 4位 |
ドキュメント量 | 1位 | |||
ユーザー構築情報 | ||||
[DB]PostgreSQL MySQL SQLiteを抽象化 | ||||
DBのMasterSlave読み分け | ||||
部分SSL対応 | ||||
Sessionストレージ変更(File DB Memcache) | ||||
[SlavePNE]POP3 DB HTTP LDAP対応できるか? | ||||
携帯UAの機種振り分け | ||||
携帯認証カバー(個体識別 キャリアUA) | ||||
携帯絵文字 | ||||
日本語メール送信出来るか? | ||||
日本語メール受信して処理出来るか?(絵文字含む) | ||||
SQLインジェクションカバー | ||||
CSRFカバー | ||||
XSSカバー | ||||
テンプレートエンジンに選択自由度があるか? | ||||
[ktai URL]/.ZsrMKtQAyh9GHdXP./member/1 | ||||
国際化対応レベル | ||||
パフォーマンス(FWでの劣化) | ||||
パフォーマンス(FW機能による高速化) | ||||
[DB]members id member_id | ||||
[URL]/member/1 /community/1 | ||||
サポートの継続 | ||||
OpenID Consumer対応 | ライブラリ有り | |||
OpenID Provider対応 | ライブラリ有り | |||
OpenSocial Container | ||||
小窓 | OK | OK | OK | OK |
PHP小窓 | ||||
ページキャッシュ | ||||
ページコンポーネントごとキャッシュ | ||||
クエリキャッシュ | ||||
OpenPNEサンプルコーディングの結果 | 未 | 未 | 未 | 未 |
テストフレームワークの有無 | ||||
サポートするPHPバージョン | 5 | 4 5 | 5 | 4 5 |
- | ZendFramework | CakePHP | symfony | ethna | maple | CodeIgniter?? | コメント |
Googleトレンドの人気 | 3位 | 1位 | 2位 | - | - | 4位 | - |
ドキュメント量 | 1位 | - | ◎ | - | 少 | - | - |
ユーザー構築情報 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限定のフレームワークでも良い
URLスタイル
/xxx/h_home.phpのように.phpを使わないURLスタイルに変更されます。
例
上記変更に伴いmod_rewrite環境が必須になります。
※pathinfoで実現する救済措置は検討中です。
OpenPNE3URLマップ
項目名 | OpenPNE3のURL | OpenPNE2でのURL | |
マイホーム | /home/ or / | page_h_home | |
あしあと | /ashiato/ | h_ashiato | |
カレンダー | /calendar/ | h_calendar | |
リンク申請 | f_link_request | ||
リンク申請 | f_link_request_confirm | ||
フレンド | /members/1 | page_f_home | |
メッセージ | /messages/1 | h_message | |
メッセージ リスト | /messages/list | h_message_box | |
コミュニティ | /communities/1 | page_c_home | |
トピック | /topics/1 | c_topic_detail | |
トピック リスト | /topics/list | c_topic_list | |
トピック 編集 | /topics/edit/1 | c_topic_edit | |
トピック 追加 | /topics/add/1 | c_topic_add | |
トピック | c_topic_add_confirm | ||
トピック | c_topic_delete_confirm | ||
トピック | c_topic_write_confirm | ||
トピック | c_topic_write_delete_confirm | ||
イベント | /events/1 | c_event_detail | |
イベント リスト | /events/list | c_event_list | |
イベント 追加 | /events/add | c_event_add | |
イベント | c_event_add_confirm | ||
イベント | c_event_delete_confirm | ||
イベント 編集 | /events/edit/1 | c_event_edit | |
イベント | /events/invite | c_event_invite | |
イベント | c_event_invite_end | ||
イベント | c_event_mail | ||
イベント | c_event_mail_confirm | ||
イベント | c_event_mail_end | ||
イベント | c_event_member_list | ||
イベント | c_event_write_confirm | ||
イベント | c_event_write_delete_confirm | ||
日記 | /diaries/1 | fh_diary | |
日記 リスト | /diaries/list | fh_diary_list | |
日記 リスト | /diaries/list/1 | h_diary_list_friend | |
日記 追加 | /diaries/add | h_diary_add | |
日記 | h_diary_add_confirm | ||
日記コメント リスト | /diary_comments/list | h_diary_comment_list | |
日記 編集 | /diaries/edit | h_diary_edit | |
日記 編集 確認 | h_diary_edit_confirm | ||
日記 | fh_diary_comment_confirm | ||
設定 | /config/ | h_config | |
設定 | /config/image | h_config_image | |
設定 | /config/ktai | h_config_ktai | |
設定 | h_config_ktai_end | ||
設定 | h_config_prof | ||
設定 | h_config_prof_confirm | ||
設定 | h_confirm_list | ||
↓↓↓↓↓↓↓↓ | エラーページ系 | ↓↓↓↓↓↓↓↓ | |
エラー | ※統合したい | h_err_c_home | |
エラー | ※統合したい | h_err_diary_access | |
エラー | ※統合したい | h_err_f_home | |
エラー | ※統合したい | h_err_fh_diary | |
エラー | ※統合したい | h_err_forbidden | |
エラー | ※統合したい | h_err_free_page | |
エラー | ※統合したい | h_err_invite | |
リンク申請 | f_link_request_err_already | ||
リンク申請 | f_link_request_err_wait | ||
リンク申請 | f_link_request_err_yet | ||
外部ページ | o_err_free_page | ||
↓↓↓↓↓↓↓↓ | 外部ページ系 | ↓↓↓↓↓↓↓↓ | |
外部ページ | o_free_page | ||
外部ページ | o_h_config_mail | ||
外部ページ | o_h_regist_mail | ||
外部ページ | o_login | ||
外部ページ | o_login2 | ||
外部ページ | o_password_query | ||
外部ページ | o_public_invite | ||
外部ページ | o_public_invite_end | ||
外部ページ | o_regist_end | ||
外部ページ | o_regist_intro | ||
外部ページ | o_regist_ktai_address | ||
外部ページ | o_regist_ktai_address_confirm | ||
外部ページ | o_regist_ktai_address_end | ||
外部ページ | o_regist_mail_confirm | ||
外部ページ | o_regist_prof | ||
外部ページ | o_regist_prof_confirm | ||
外部ページ | o_sns_kiyaku | ||
外部ページ | o_sns_privacy | ||
外部ページ | o_tologin | ||
外部ページ | o_url_changed | ||
↓↓↓↓↓↓↓↓ | 全体系 | ↓↓↓↓↓↓↓↓ | |
ランキング | h_ranking | ||
検索 | c_com_topic_find | ||
日記 検索 | h_diary_list_all | ||
検索 | h_com_find_all | ||
検索 | h_com_topic_find_all | ||
検索 | /search/ | h_search | |
検索 | h_search_list | ||
検索 | h_search_result | ||
↓↓↓↓↓↓↓↓ | 命名が重要でない | ↓↓↓↓↓↓↓↓ | |
メンバー招待 | h_invite | ||
メンバー招待 | h_invite_confirm | ||
メンバー招待 | h_invite_end | ||
ブックマーク | ※廃止したい | f_bookmark_add | |
ブックマーク | ※廃止したい | h_bookmark_diary_blog_list | |
ブックマーク | ※廃止したい | h_bookmark_list | |
スケジュール | ※廃止したい | h_schedule | |
スケジュール | ※廃止したい | h_schedule_add | |
スケジュール | ※廃止したい | h_schedule_add_confirm | |
スケジュール | ※廃止したい | h_schedule_delete | |
スケジュール | ※廃止したい | h_schedule_delete_end | |
スケジュール | ※廃止したい | h_schedule_edit | |
スケジュール | ※廃止したい | h_schedule_edit_confirm | |
レビュー | ※廃止予定 | c_member_review | |
レビュー | ※廃止予定 | c_member_review_add | |
レビュー | ※廃止予定 | c_member_review_add_confirm | |
レビュー | ※廃止予定 | c_member_review_delete_confirm | |
レビュー | ※廃止予定 | h_review_add | |
レビュー | ※廃止予定 | h_review_add_write | |
レビュー | ※廃止予定 | h_review_add_write_confirm | |
レビュー | ※廃止予定 | h_review_clip_add | |
レビュー | ※廃止予定 | h_review_clip_list | |
レビュー | ※廃止予定 | h_review_delete_confirm | |
レビュー | ※廃止予定 | h_review_edit | |
レビュー | ※廃止予定 | h_review_list_product | |
レビュー | ※廃止予定 | h_review_search | |
レビュー | ※廃止予定 | fh_review_list_member |
※レビュー機能は、小窓を利用した代替表現手段を確立し、本体機能からは切り離す予定です。
DBレイアウト
- RailsスタイルのDB名、カラム名を採用する
- テーブル名
- members
- communities
- カラム名
- 主キー => id
- 外部キー => member_id
HTMLレイアウト
- FullCSS
- コンテナ方式
- 公式レイアウトは固定幅、固定フォント
- インターフェースと装飾を明確に区別する
- インターフェースは、ボタン配置など、装飾は配色、スキン等
データ構造
画面構造
perspective(h_ f_ c_)
- h_自分系
- f_フレンド系
- c_コミュニティ系
管理構造
権限管理
ターゲットがある物
- FriendLevel?
- フレンド フレンドじゃない
- CommunityLevel?
- コミュニティ外 コミュニティメンバー コミュニティ管理人 コミュニティ副管理人
SNSで一意
- RoleBaseAccessControl?
- SNS外メンバー SNSメンバー SNS管理者
- ProfileLevel?
- 18才以上 性別など プロフィール別
国際化
国際化に対応できる機構にします。