Skip to content

NetCommonsプラグイン開発Tips

Mitsuru Mutaguchi edited this page Feb 4, 2016 · 1 revision

オールクリエイター藤原様より、Questionnaireプラグイン改修作業時の情報をご提供頂きました。

Questionnaireプラグイン改修作業

=======================================================================================================================
1.CakePHPの流儀に沿った構造へ変更

 ◎Cakeの設計は画面が先がおすすめです。
  画面を作り終えてからDB構造を設計するのが良い感じです。

 ◎Cakeは基本的にはdispatch(), trigger()から呼び出される各種Callback関数を利用することによって
  定型の流れに沿った構造をとる
  各種Callback処理をうまく取り込むことがCakePHPコーディングには必須である。
  Questionnaireもできる限りCallbackを利用した構造に転換した。
 
 ◎目的に応じた適切なControllerの分割
  発注前までまでー>Modelと1対1にControllerを作成していた
  発注後ー>画面の役割に応じてControllerを分割 役割ごとにまとめることでBeforeFilterなどのCallbackメソッドが共通処理メソッドとしてまとめやすくなった

 ◎目的に応じて適切なModelの分割
  発注前までまでー>テーブルと1対1でModelを作成していた
  発注後ー>処理目的ごとにModelを分割
  
 ◎Behaviorの作成
  発注後ー>データValidationをBehaviorに切り出し。Validation方式を見直しして、Cakeの流儀に沿うように変更
          Behaviorはデータタイプごとに個別Behaviorを作成し、Behavior内部は単純なコードに落とした
  
 ◎Model,Behaviorの見直しにあわせて、エラーメッセージ取り扱い方法の変更
  Cakeで準備されているエラーメッセージ取り扱い方式に揃えた
  
 ◎Utilityの作成
  発注後ー>Modelなどから利用されることが想定される便利メソッドはUtilityとして作成
          (※現在納品に含まれるUtilityはWysisWygエディタデータを取り出すもののため共通化されると思われる
            ゆえに決定事項ではありません
 ◎Helperの作成
  画面生成時にIFの判断が多数必要になるパーツについてはHelperを使用する方向で構造変更
  (※Angularを多用している部分はかえって複雑化するので避けている。
  

=======================================================================================================================

2.NetCommons共通に合わせるように変更

 ◎Permission判断はNetCommons.PermissionComponentを使用するように変更
 ◎Workflowプラグインを使用して、Read,Editの判断を行うように変更
 ◎時間取得部分はNetCommonsプラグインを使用するように変更
 ◎File操作部分はFilesプラグインを使用するように変更
 ◎規定値読み取りについて、Currentオブジェクトを使用するように変更
 ◎CTPでForm要素やLink要素を作成する場合はNetCommonsプラグインを使用するように全面変更
 ◎Form要素をNetCommonsプラグインのものを使用することに合わせてエラーメッセージ表示方法を全面的に見直し
 
 

=======================================================================================================================

3.共通プラグインの作成、および 共通を利用するように変更

 ◎アンケートが持っていた機能で共通になりそうなものを切り出した
 (1)認証キー
 (2)画像認証
 (3)カラーピッカー
 (4)タイトルアイコンピッカー
 
 これに合わせて、Questionnaireの構造も内部にあったものを削除し、共通を呼び出して使用するように変更した
 
 

=======================================================================================================================

4.テーブル構造
 
 ◎Questionnaireのテーブル一式をNC3テーブル構造に揃えた
 (1)origin_idの削除
 (2)keyの追加
 (3)言語関連フィールドの追加や削除
 (4)期間設定関連のフィールドを共通名に変名
 
 
 
 
 
=======================================================================================================================

その他、この期間中にAngularJSのバージョンアップ、Cakeのバージョンアップがあり、それらに合わせた改修を実施
Clone this wiki locally