これらは、コードを構造化し、より組織的に保つのに役立つため、ソフトウェア アーキテクチャで広く使用されている概念です。各人の役割と責任を今すぐ理解してください!
サービス
サービスは、ユーザーが送信したリクエストを検証する役割を担う層です。言い換えれば、ビジネス ルールまたはアプリケーション ロジックを担当します。
わかりやすくするために、銀行取引を実行するアプリケーションがあると想像してください。トランザクションが完了する前に、アカウントに与信制限があるかどうか、データベース内で競合を引き起こす情報の重複がないか、送信された情報が正しいかどうか、その他の検証など、いくつかの情報を検証する必要があります。ロジックとビジネス ルールに適用されます。
アプリケーションの背後にあるこのロジックはすべて、ソフトウェア内の サービス レイヤーに委任され、送信されたデータが期待どおりであるかどうかを通知します。
リポジトリ
この層は、データベースとアプリケーションの残りの部分を仲介する役割を果たします。これは、ユーザーが提供したデータをデータベースに保存するものです。言い換えれば、CRUD (作成、読み取り、更新、削除) の複雑さは、データベースにアクセスして送信された情報が操作されるリポジトリ層に隠されています。
データベース アクセス ロジックを分離することにより、コードがよりクリーンになり、理解しやすくなります。
コントローラー
コントローラーはユーザーのリクエストを処理し、それに対する応答を発行します。したがって、入力 (通常は WEB 経由の HTTP) を受信し、検証してサービスを呼び出してビジネス ロジックを処理し、ユーザーに応答を返します。
言い換えると、ユーザーによって渡されたデータ (必須フィールド、データ型または形式、ID 検証など) をサービスに渡す前に検証し、それによってビジネス ロジックが検証されます。その後、コントローラーはリクエストが成功したか失敗したかを通知するレスポンスをユーザーに送信します。
しかし、コンポーネントはどのように関係しているのでしょうか?
ユーザーが HTTP リクエストを行うと、コントローラー がそれを受信し、事前の検証を実行します。すべてが正しい場合は、サービスに送信してください。
サービスは情報を取得し、アプリケーションの背後にあるロジックに従って検証します。すべてが正常であれば、リクエストをリポジトリに送信します。
リポジトリは、コントローラに送信されたリクエストに従って、このデータを保存、更新、または削除します。
コントローラは最終応答を受信し、それをユーザーに送信して、操作の成功またはエラーを通知します。
まとめ
各層には独自の責任があることがわかり、これによりコードのメンテナンスが容易になります。
サービス: ビジネス ロジック、プロセス検証
リポジトリ: データベース内の CRUD を担当します
コントローラー: API 経由でリクエストを受信し、ユーザーに最終メッセージを通知する役割を果たします。
以上がサービス、リポジトリ、コントローラーについて、PT. 1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
