skillup

技術ブログ

PHP プログラミング全般

アプリケーションアーキテクチャについて 〜既存のMVCに関して〜

投稿日:

今回はアプリケーションのルーター以降のアーキテクチャに関して。主にMVCなどについて説明したいと思います。

MVC(Model,Controller,View)

一般的なアーキテクチャのパターンですね。

ただ実際にはControllerとModelはどのような部分が当てはまるのかというのは解釈が別れる部分のようです。そこでさらに細分化して下記のような実装パターンがあるようです。

トランザクションスクリプトパターン

主に処理を一つのメソッドとして定義し、似た概念を一つのServiceとしてまとめるパターンです。

例として「書籍を購入する」という処理がある場合、BookServiceのようなものを定義し、「注文する」といった処理などが1つ1つのメソッドになります。

このような処理の場合、

  • 似たような処理が増えてしまう
  • 共通化が難しい
  • 責務の分析ができていない
  • 分割や結合などが恣意的になる

などのデメリットもあります。

次回はこれをカバーしたドメインモデルについて少し書きます。

参考文献

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 (日本語)

Laravelアーキテクチャ 3 アプリケーションアーキテクチャ

参考URL

ドメイン駆動開発入門

-PHP, プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

例外処理に関して

いまいち使い方がいい加減だった例外処理について、復習がてらメモします。 昔のリンクを整理して出てきた例外リンクはこちら(Javaですが今のPHPにも当てはまるかと思います。) 例外処理について 例外処 …

no image

cakeでのJOINについて&session

Contents1 cakeでのJOIN2 cakeでのsessionについて cakeでのJOIN cakePHPでは基本、hasManyなどの修飾子を使えば、リレーションをとることができますが、検 …

no image

オブジェクト指向について その3

今回は場合分けによる変更コストとオブジェクト指向のメリットについてです。 例えば給付金が発生して、その金額を死亡時、退職時、通常時で場合分けするとき、if-elseで書けば下記のようになります。 [c …

no image

オブジェクト指向設計 ダックタイピング

オブジェクト指向シリーズ。ダックタイピング・・読む前は名前は聞いたことあるような気がする・・程度で細かいことは何一つわからない状態でした。今回具体的なコード例があった分イメージを何とかつかむことはでき …

no image

emptyの扱いに関して

PHPで空白や存在確認として便利なemptyですが、乱用すると意図しない動きをすることがあるケースが多々あります。 Contents1 emptyの挙動に関して2 数値の03 検索などの全判定と値のな …

アーカイブ