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

Laravelのルーティングに関して

Laravelでのルーティングに関して。 惰性で使っていたんですが、これを機にしっかりと整理してみようかと。あくまで頻出パターンのみです。 ディフォルトだとroutes/web.phpが読み込まれます …

no image

phpenvで入れたphpの起動スクリプトに関して

以前、CentOS7.7にphp5.3を入れるという案件がありましたが、yumなどでは入らないため、phpenvで入れました。 phpenv5.3+php-fpm が、起動スクリプトを配置していないこ …

no image

Laravelのサービスプロバイダ

ミドルウェアやルーティング同様、惰性で使っていたサービスプロバイダについてめも。 Contents1 サービスプロバイダとは2 参考リンク・参考文献 サービスプロバイダとは Laravelでは特定のサ …

no image

eclipseでのPHPソースの扱い方

Contents1 既存ファイルからプロジェクト生成2 PHP5.4以降でコンパイルする3 ctpファイルのシンタックスハイライト 既存ファイルからプロジェクト生成 超小ネタですが、Eclipseです …

no image

サービスプロバイダとは

Laravelをやっていて、次に分かり難かった概念、サービスプロバイダについて。 アプリケーション開発にはデータベース、ファイル操作、ログ操作など様々な操作があり、個別のビジネス処理以外で共通化できる …