skillup

技術ブログ

PHP アーキテクト設計全般

アプリケーションアーキテクチャについて 〜ドメインモデルに関して〜

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

前回のトランザクションスクリプトパターンの反省から

今回はいわゆるドメインモデルの具体例に関して。

ドメイン駆動型設計には以下のような特徴があります。

大きく、アプリケーションの構成を以下のように分けます。

主な構成

ルーティング

URLとコントローラの橋渡し

コントーラー

URLからビューまでの橋渡し

サービス

一連のビジネスロジックの記述部分

リポジトリ

DB(エンティティ)とのやりとりなど

エンティティ

DBをオブジェクトに置き換えたものです。

ビュー

実際のHTML部分

のように分けるのが一般的です。

個人的に上記のような形で処理を書いて見ましたが、

  • 細かい仕様変更があった場合に上位(例えばコントローラー)の修正を必要としなくなる
  • 規模によってはサービスとリポジトリを分ける必要がないかも
  • 単純な検索プラスCSV出力などの機能を言われた時に下位(サービス以下)の処理を使い回すことができる
  • テストがしやすい

などのメリットが多々あります。

参考文献

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

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

参考URL

ドメイン駆動開発入門

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

執筆者:


comment

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

関連記事

no image

PHPでのログ出力 PHP monolog

PHPでデバッグするときは、画面上にvar_dumpで情報を見ていたのですが、これができない場面ではログへの出力を行うことになります。 いままではフレームワークに標準でついてたんですが、これを機に一般 …

no image

dateTimeの使い方

phpの日付ライブラリであるdateTimeについて。 Contents1 過去のリンク2 頻出表現3 リンク 過去のリンク CakePHP3 日付ライブラリ(Time)について http://ski …

no image

call_user_funcについて

call_user_funcについて。 call_user_funcはメソッドを動的に呼ぶことができるメソッドの1つで、コールバック関数を使いたいときに使われます。JavaScriptでは比較的多いと …

no image

クリーンアーキテクチャーがらみの話題など

クリーンアーキテクチャに関してメモ。 自分がプログラミングを学習したのは10年ほど前ですが、当時はいわゆるMVC(Model – Controller – View)でアプリケ …

no image

Laravelのミドルウェアについて

以前からLaravel(ララベル)を使っていてわかりにくかったミドルウェアについてめも。 Laravelは一般的にはMVCフレームワークと言われていますが、コントローラーがリクエストを受け取り、何らか …

アーカイブ