skillup

技術ブログ

PHP アーキテクト設計全般

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

投稿日:2020年2月25日 更新日:

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

MVC(Model,Controller,View)

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

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

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

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

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

このような処理の場合、

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

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

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

参考文献

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

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

参考URL

ドメイン駆動開発入門

-PHP, アーキテクト設計全般
-,

執筆者:


comment

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

関連記事

no image

PDFテンプレートの活用

PDFのテンプレートの活用について。 PDFを出力するプログラムはいろいろありますが、今回はすでにあるPDFをテンプレート化できるライブラリについて。 Contents1 FPDI2 ソース3 参考リ …

no image

HTMLの画像化について

7月にHTMLを画像化する処理なんてものをやりました。 コード自体は複雑なことはなかったんですが、新規で覚えることがそこそこあったので、メモしておきます。 Contents1 html2canvas1 …

no image

composer経由でのpearライブラリのインストール

2018年7月現在、PHPのライブラリはほとんどComposer経由でインストールできるかと思いますが、稀にComposerに対応していないものもあり、その場合、pearから取得してくる必要があります …

no image

cakePHPでのマイグレーション

開発を続けているとデータベースのカラムの構造が変更するってことはしょっちゅうですが、管理がいい加減だとメンバー間でテーブルの構造が変わっていたり、本番と開発で違ってくるなどのトラブルが続出します。 そ …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …

アーカイブ