PHPで簡易なフレームワークを作ろうと思っており、他のフレームワークで一般的な「コントローラ/アクション」の実装方法について悩んでいます。現在2つの案を考えており、


■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(){}
}

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/04/05 12:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tukihatu No.2

回答回数180ベストアンサー獲得回数32

ポイント35pt

僕もフレームワークであればBをおススメします。

実際に計ったわけではないですが、速さは記述が少ない分Aのほうが若干早そうですね。

■A案

メリット:

場所の説明が楽(チーム内での混乱が少ない・仕様書書くのが楽)

デメリット:

複数人での作業がむずかしい

障害発生時、範囲が広くなるかも

■B案

メリット:

障害発生時、範囲を最小限に抑えられるかも

複数人での作業が可能(ファイル分割など)

デメリット:

ファイルの説明書が必須

継承の階層があまりにも深いと速度減の可能性


まあ数によるメリットデメリットがあるぐらいでしょうか。

id:xxmasaxx

B案だとファイル数が多くなってメンテの手間がA案よりかかるものの、複数での開発に向いている、というのはメリットありますね。

回答ありがとうございます。

2011/03/29 18:31:09

その他の回答1件)

id:pretaroe No.1

回答回数531ベストアンサー獲得回数75

ポイント35pt

PHP5.1以降の対応だけでよいのなら、B。

速さも実装方法によりますが、Aとほとんど変わらない程度には可能です。

他の言語のフレームワークは、大体Bを採用してるのでお勧めはB

id:xxmasaxx

他言語はB案が多いのですね。知りませんでした。

ちなみにPHP5.3での開発になると思います。

回答どうもありがとうございます。

2011/03/29 16:06:39
id:tukihatu No.2

回答回数180ベストアンサー獲得回数32ここでベストアンサー

ポイント35pt

僕もフレームワークであればBをおススメします。

実際に計ったわけではないですが、速さは記述が少ない分Aのほうが若干早そうですね。

■A案

メリット:

場所の説明が楽(チーム内での混乱が少ない・仕様書書くのが楽)

デメリット:

複数人での作業がむずかしい

障害発生時、範囲が広くなるかも

■B案

メリット:

障害発生時、範囲を最小限に抑えられるかも

複数人での作業が可能(ファイル分割など)

デメリット:

ファイルの説明書が必須

継承の階層があまりにも深いと速度減の可能性


まあ数によるメリットデメリットがあるぐらいでしょうか。

id:xxmasaxx

B案だとファイル数が多くなってメンテの手間がA案よりかかるものの、複数での開発に向いている、というのはメリットありますね。

回答ありがとうございます。

2011/03/29 18:31:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません