■A案:1つのコントローラクラス内にアクションをメソッドで記述(CakePHP,Codeigniterで採用)
■B案:アクション毎にアクションクラス(ファイル)を作成し、所属コントローラのクラスを継承(Yii Frameworkで採用)
基本的に処理速度が速い方を採用したいと思っています。
皆さんならどちらを採用するでしょうか。
また考えられる両者のメリットとデメリットがありましたら教えて下さい。
よろしくお願いします。
■A案実装例
class HogeController extends Controller
{
// アクション実行前の処理
function beforAction(){}
// アクション
function hogeAction(){}
}
■B案実装例
class HogeAction extends HogeController
{
// 処理内容
function run(){}
}
// 継承元コントローラクラス //
class HogeController extends Controller
{
// アクション実行前の処理
function beforAction(){}
}
僕もフレームワークであればBをおススメします。
実際に計ったわけではないですが、速さは記述が少ない分Aのほうが若干早そうですね。
■A案
メリット:
場所の説明が楽(チーム内での混乱が少ない・仕様書書くのが楽)
デメリット:
複数人での作業がむずかしい
障害発生時、範囲が広くなるかも
■B案
メリット:
障害発生時、範囲を最小限に抑えられるかも
複数人での作業が可能(ファイル分割など)
デメリット:
ファイルの説明書が必須
継承の階層があまりにも深いと速度減の可能性
まあ数によるメリットデメリットがあるぐらいでしょうか。
PHP5.1以降の対応だけでよいのなら、B。
速さも実装方法によりますが、Aとほとんど変わらない程度には可能です。
他の言語のフレームワークは、大体Bを採用してるのでお勧めはB
他言語はB案が多いのですね。知りませんでした。
ちなみにPHP5.3での開発になると思います。
回答どうもありがとうございます。
僕もフレームワークであればBをおススメします。
実際に計ったわけではないですが、速さは記述が少ない分Aのほうが若干早そうですね。
■A案
メリット:
場所の説明が楽(チーム内での混乱が少ない・仕様書書くのが楽)
デメリット:
複数人での作業がむずかしい
障害発生時、範囲が広くなるかも
■B案
メリット:
障害発生時、範囲を最小限に抑えられるかも
複数人での作業が可能(ファイル分割など)
デメリット:
ファイルの説明書が必須
継承の階層があまりにも深いと速度減の可能性
まあ数によるメリットデメリットがあるぐらいでしょうか。
B案だとファイル数が多くなってメンテの手間がA案よりかかるものの、複数での開発に向いている、というのはメリットありますね。
回答ありがとうございます。
B案だとファイル数が多くなってメンテの手間がA案よりかかるものの、複数での開発に向いている、というのはメリットありますね。
回答ありがとうございます。