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回まで
  • 13歳以上
  • 登録:2011/03/29 12:12:07
  • 終了:2011/04/05 12:15:03

ベストアンサー

id:tukihatu No.2

牛乳先生(tukihatu)回答回数180ベストアンサー獲得回数322011/03/29 18:00:16

ポイント35pt

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

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

■A案

メリット:

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

デメリット:

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

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

■B案

メリット:

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

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

デメリット:

ファイルの説明書が必須

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


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

id:xxmasaxx

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

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

2011/03/29 18:31:09

その他の回答(1件)

id:pretaroe No.1

pretaroe回答回数531ベストアンサー獲得回数752011/03/29 15:30:02

ポイント35pt

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

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

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

id:xxmasaxx

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

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

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

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

牛乳先生(tukihatu)回答回数180ベストアンサー獲得回数322011/03/29 18:00:16ここでベストアンサー

ポイント35pt

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

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

■A案

メリット:

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

デメリット:

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

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

■B案

メリット:

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

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

デメリット:

ファイルの説明書が必須

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


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

id:xxmasaxx

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

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

2011/03/29 18:31:09

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません