-
Notifications
You must be signed in to change notification settings - Fork 16
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のバージョンアップがあり、それらに合わせた改修を実施