人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: xxmasaxx
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:A案 CakePHP Class CodeIgniter Framework
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pretaroe
●35ポイント

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

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

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

◎質問者からの返答

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

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

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


2 ● 牛乳先生(tukihatu)
●35ポイント ベストアンサー

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

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

■A案

メリット:

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

デメリット:

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

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

■B案

メリット:

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

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

デメリット:

ファイルの説明書が必須

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


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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ