wiki:pne-openpne3
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 76 (modified by tejimaa, 12 years ago) (diff)

--

TOC

OpenPNE3仕様

本WikiにはOpenPNE3仕様に関する、概要説明や仕様などの確定した情報を記載 しています。本Wikiについての草稿や議論は、ノートページに記載してください。

OpenPNE3の制約事項

  • PHP5以降限定になります。
  • mod_rewrite必須になります。
  • DB構造が大幅に変更になります。
  • 使われていない機能の統廃合が行われます。

PHPフレームワークの選定

PHPフレームワークを導入します。

pne-openpne3-note

参考情報

Googleトレンド調べ

http://sc.pne.jp/200712231511.png

http://www.google.com/trends/viz

http://www.google.com/trends/viz

上記のフレームワーク中から選びます。

フレームワーク選定の要件

評価マトリックス

ZendFrameworkCakePHPsymfonyCodeIgniter?
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
小窓OKOKOKOK
PHP小窓
ページキャッシュ
ページコンポーネントごとキャッシュ
クエリキャッシュ
OpenPNEサンプルコーディングの結果
テストフレームワークの有無
サポートするPHPバージョン54 554 5

その他条件

  • DB抽象化されていて、PostgreSQL MySQL SQLiteがシームレスに利用できる?
    • チューニング目的以外では、セットアップ、DB操作のSQLは1パターンのみで運用可能
  • 携帯の特殊な挙動に対して、フレームワークでカバーできるか?
  • Smartyテンプレートを使用できるか?(もしくは置き換えるに値する素敵なテンプレートエンジンを使えるか?)
  • パフォーマンスが劣化しないか?
  • ドキュメントが充実しているか?
  • 今後サポートが継続されそうか?
  • テスト関連のフレームワークが備わっているか?
  • 国際化対応の機構が組み込まれているか?
  • トレンドなのでRailsをある程度意識していて欲しい

考慮しなくても良い要件

  • OpenPNE2系からの移行に伴う作業負荷は考えない
  • PHP5限定のフレームワークでも良い

URLスタイル

/xxx/h_home.phpのように.phpを使わないURLスタイルに変更されます。

上記変更に伴いmod_rewrite環境が必須になります。

※pathinfoで実現する救済措置は検討中です。

OpenPNE3URLマップ

項目名URL2系でのURL
マイホーム/home/ or / page_h_home
あしあと/ashiato/h_ashiato
カレンダー/calendar/h_calendar
リンク申請f_link_request
リンク申請f_link_request_confirm
フレンド/member/1 page_f_home
メッセージ/message/1h_message
メッセージ リスト/message/list/h_message_box
コミュニティ/community/1page_c_home
トピック/topic/1c_topic_detail
トピック リスト/topic/list/c_topic_list
トピック 編集/topic/edit/1c_topic_edit
トピック 追加c_topic_add
トピックc_topic_add_confirm
トピックc_topic_delete_confirm
トピックc_topic_write_confirm
トピックc_topic_write_delete_confirm
イベント/event/1c_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/1fh_diary
日記 リスト/diary/listfh_diary_list
日記 リスト/diary/list/1h_diary_list_friend
日記 追加h_diary_add
日記h_diary_add_confirm
日記コメント リスト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
リンク申請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
検索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

pne-openpne3-note

DBレイアウト

  • RailsスタイルのDB名、カラム名を採用する
  • テーブル名
    • members
    • communities
  • カラム名
    • 主キー => id
    • 外部キー => member_id

HTMLレイアウト

  • FullCSS
  • コンテナ方式
  • 公式レイアウトは固定幅、固定フォント
  • インターフェースと装飾を明確に区別する
    • インターフェースは、ボタン配置など、装飾は配色、スキン等

データ構造

pne-openpne3-note

画面構造

perspective(h_ f_ c_)

  • h_自分系
  • f_フレンド系
  • c_コミュニティ系

管理構造

権限管理

ターゲットがある物

  • FriendLevel?
    • フレンド フレンドじゃない
  • CommunityLevel?
    • コミュニティ外 コミュニティメンバー コミュニティ管理人 コミュニティ副管理人

SNSで一意

国際化

国際化に対応できる機構にします。

pne-i18n

WikiInclude(DIRECTORYNAVI)?