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

エディタatomについて

今までのエディタですが、 gvim eclipse をメインに使ってました(PHPでは)。 エディタとか一旦なれるとなかなか変えにくいのでずっと上記のままでいこうと思ったんですが、今の現場でatomを …

no image

cakePHP小ネタ集(Authの複数認証)

最近よく触っているcakePHPの小ネタなど。 Contents1 Authコンポーネント 複数の認証2 自動のdivタグを出力しない3 Cakeでのプルダウン作成 Authコンポーネント 複数の認証 …

no image

サロゲートキーと主キーに関して

今までも何度か触れたサロゲートキーと主キーに関して。 今までの参考リンク 論理設計のグレーノウハウ サロゲートキー サロゲートキーに関して 主にシステム設計的な考察が多かったので、今回はユースケースか …

no image

cakePHPでのCSVダウンロード

cakePHPにてCSVのダウンロードなんぞを。 以前このエントリーでCSVダウンロードに関しては取り扱ったのですが、 ボタンを押す ファイルダイアログが開く パスを選ぶ 意図したデータを正常にダウン …

no image

PHPでのコンソール入力に関して

PHPはほとんどの場合、ブラウザでURLをたたいてWEBサーバーから呼び出されるパターンがほとんどです。 ところが、コンソールから使いたい場合などもあるでしょう。 コンソールから入力する場合、なんらか …