10

[OpenPNE3]alpha1の設定周りを見る

Tag: phpuechoco @ 23 : 08 : 34

世の中的にはOpenPNE3 alpha3の開発が始まったようですが、うえちょこはまだalpha1もalpha2も中身は見てません。せっかくオープンソースソフトウェアがゼロから徐々に作られていくわけですから、順番に追っていくのも面白いかとおもって、しっかりとalpha1から追っていきたいとか妄想しています。続くといいんだけどww

そんなわけで、今回はOpenPNE3alpha1の設定周りを中心に見ていきます。

/apps/*

/appsには、3つのアプリケーションが存在します。メインの(index.phpと対応する)アプリケーションはpc_frontendです。残りの2つはpc_backendとmobile_frontendですが、alpha1ではさら地の状態です。

/apps/pc_frontend/config/app.yml
TEXT:
  1. all:
  2.   openpne_auth_mode: LoginID

OpenPNEのユーザー認証方法を指定します。ここで設定しなかった場合はデフォルトで"LoginID"となります。sfOpenPNESecurityUserPluginにて用いられます。OpenPNE Trac Ticket #2857で触れられていますが、ログイン方法の変更時にapp.ymlを直接書き換える運用方法はちょっと危ないので、いずれは代替手段(管理画面GUIとか別途設定ファイルとか)に移行すると思われます。

/apps/pc_frontend/config/settings.yml
TEXT:
  1. prod:
  2.   .settings:
  3.     no_script_name:         on
  4.     check_lock:             on
  5.   .actions:
  6.     error_404_action:       error
  7.     module_disabled_action: error

変更された箇所だけ抜粋しています。

  • prod(本番環境用設定)
    • no_script_name=on ・・・ URLからコントローラ名(index.phpなど)を省略する
    • check_lock=on ・・・ 内部サーバーエラー発生時に/web/errors/error500.phpを表示し、キャッシュクリア中のアクセス時に/web/errors/unavailable.phpを表示する。
    • error_404_action=error ・・・ 404エラー時のアクションwo
      /default/error404から/default/errorに変更
    • module_disabled_action=error ・・・ module.ymlなどでモジュールが無効化されていた場合のアクションを/default/disabledから/default/errorに変更
TEXT:
  1. all:
  2.   .actions:
  3.     login_module:           member
  4.     login_action:           login
  5.  .settings:
  6.     i18n:                   on
  7.     standard_helpers:       [Partial, Cache, Form, I18N]
  8.     enabled_modules:        [default, loginId]
  9.     default_culture:        ja_JP

  • all(共通設定)
    • login_module=member、login_action=login ・・・ 認証画面のモジュールとアクション。認証が必要なページにアクセスしたとき、まだ認証が済んでいない時は/module/loginに飛ぶ
    • i18n=on ・・・ テンプレートの翻訳機能(インターフェース翻訳)を有効にする
    • standard_helpers+=I18N ・・・ 標準で翻訳ヘルパーをロードする
    • enabled_modules+=loginId ・・・ プラグインモジュールとしてloginIdを使用可能にする。
    • default_culture=ja_JP ・・・ 国際化機能において、デフォルトの国と言語の組み合わせを日本-日本語に設定する
/apps/pc_frontend/config/routing.yml
TEXT:
  1. # openpne rules
  2. homepage:
  3.   url:   /
  4.   param: { module: member, action: home }
  5.  
  6. member_index:
  7.   url:   /member
  8.   param: { module: member, action: home }
  9.  
  10. member_profile:
  11.   url:   /member/:id
  12.   param: { module: member, action: profile }
  13.   requirements: { id: \d+ }
  14.  
  15. community_home:
  16.   url:   /community/:id
  17.   param: { module: community, action: home }
  18.   requirements: { id: \d+ }

基本的には/member/homeが基準となるようですが、/member/1や/community/1のように、モジュール名の次に数字が来た場合は、その数字をidと見なすようです。

/apps/pc_frontend/i18n/form_member.ja.xml

XLIFF(XML Localization Interchange File Format)形式の辞書ファイルです。MemberFormクラスの翻訳カタログとして用いられています。

/apps/pc_frontend/lib/myUser.class.php

myUserクラスは、sfBasicSecurityUserクラスから派生したsfOpenPNESecurityUserクラスを継承しています。これは、OpenPNE3での認証方法が複数個あることを意識した構造のようです。

/apps/pc_frontend/modules/*

pc_frontendアプリケーションのモジュールとして、default、member、friend、communityの4つがあります。SNSの基本要素ですね。

/lib/helper/PagenationHelper.php

sfPropelPagerで取得したページャに対し、レンダリングを簡略化するためのpager_navigation()関数があります。

/plugins/*

sfOpenPNEAuthLoginIDPluginsfOpenPNESecurityUserPluginがあります。どちらのプラグインもOpenPNE Trac Ticket #2857 - sfOpenPNEAuthLoginIDPlugin による簡易的な登録機能の追加に詳しいです。その中から一部だけ引用しました。

SNSメンバーを表すクレデンシャル
SNSMember : SNSのメンバーである(メンバーID を所有し、SNSにログイン可能である)ことを表すクレデンシャルです
SNSRegisterBegin : 登録用のデータを入力する権限を持つことを表すクレデンシャルです。SNSに登録しようとする場合、この権限をまず得なければいけません
SNSRegisterEnd : 登録処理を完了するアクションを実行する権限を持つことを表すクレデンシャルです。SNSへの登録を完了しようとする(ログイン可能になる)場合、この権限を得なければなりません
※これらのクレデンシャル名は変更されるかもしれません。

Leave a Reply