Version 71 (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 | ||||
小窓 | OK | OK | OK | OK |
PHP小窓 | ||||
ページキャッシュ | ||||
ページコンポーネントごとキャッシュ | ||||
クエリキャッシュ | ||||
OpenPNEサンプルコーディングの結果 | 未 | 未 | 未 | 未 |
テストフレームワークの有無 | ||||
サポートするPHPバージョン | 5 | 4 5 | 5 | 4 5 |
その他条件
- DB抽象化されていて、PostgreSQL MySQL SQLiteがシームレスに利用できる?
- チューニング目的以外では、セットアップ、DB操作のSQLは1パターンのみで運用可能
- 携帯の特殊な挙動に対して、フレームワークでカバーできるか?
- Smartyテンプレートを使用できるか?(もしくは置き換えるに値する素敵なテンプレートエンジンを使えるか?)
- パフォーマンスが劣化しないか?
- ドキュメントが充実しているか?
- 今後サポートが継続されそうか?
- テスト関連のフレームワークが備わっているか?
- 国際化対応の機構が組み込まれているか?
- トレンドなのでRailsをある程度意識していて欲しい
考慮しなくても良い要件
- OpenPNE2系からの移行に伴う作業負荷は考えない
- PHP5限定のフレームワークでも良い
URLスタイル
/xxx/h_home.phpのように.phpを使わないURLスタイルに変更されます。
例
上記変更に伴いmod_rewrite環境が必須になります。
※pathinfoで実現する救済措置は検討中です。
OpenPNE3URLマップ
項目名 | URL | 2系でのURL |
マイホーム | /home/ or / | page_h_home |
あしあと | /ashiato/ | h_ashiato |
カレンダー | /calendar/ | h_calendar |
リンク申請 TGT=member_id | f_link_request | |
リンク申請 TGT=member_id | f_link_request_confirm | |
リンク申請 TGT=member_id | f_link_request_err_already | |
リンク申請 TGT=member_id | f_link_request_err_wait | |
リンク申請 TGT=member_id | f_link_request_err_yet | |
フレンド | /member/1 | page_f_home |
メッセージ | /message/1 | h_message |
メッセージ リスト | /message_list/ | h_message_box |
コミュニティ | /community/1 | page_c_home |
コミュニティ | /community/1 | page_c_home |
トピック | /topic/1 | c_topic_detail |
トピック リスト TGT=community_id | /topic_list/ | c_topic_list |
トピック 編集 TGT=topic_id | /topic_edit/1 | c_topic_edit |
トピック 追加 TGT=community_id | c_topic_add | |
トピック | c_topic_add_confirm | |
トピック | c_topic_delete_confirm | |
トピック | c_topic_write_confirm | |
トピック | c_topic_write_delete_confirm | |
イベント | /event/1 | c_event_detail |
イベント リスト | /event_list/ | c_event_list |
イベント 追加 | /event_add/ | c_event_add |
イベント | c_event_add_confirm | |
イベント | c_event_delete_confirm | |
イベント 編集 | c_event_edit | |
イベント | 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 | |
日記 | /diary/1 | fh_diary |
日記 リスト | /diary_list/ | fh_diary_list |
日記 リスト TGT=member_id | h_diary_list_friend | |
日記 追加 | h_diary_add | |
日記 | h_diary_add_confirm | |
日記コメント リスト TGT=diary_id | h_diary_comment_list | |
日記 編集 | h_diary_edit | |
日記 編集 確認 | h_diary_edit_confirm | |
日記 | fh_diary_comment_confirm | |
設定 | h_config | |
設定 | h_config_image | |
設定 | 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 |
↓↓↓↓↓↓↓↓ | 外部ページ系 | ↓↓↓↓↓↓↓↓ |
外部ページ | 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 | |
検索 | 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才以上 性別など プロフィール別
国際化
国際化に対応できる機構にします。