PHP でトピックベースのパブリッシュ/サブスクライブ パターンを実装する方法
PHP でトピックベースのパブリッシュ/サブスクライブ パターンを実装する方法
はじめに:
パブリッシュ/サブスクライブ パターン (パブリッシュ/サブスクライブ パターン) は、ソフトウェア設計で一般的に使用されるパターンです。パブリッシャーとサブスクライバー間の関係を解決します。このモードでは、パブリッシャーは複数のサブスクライバーにメッセージをパブリッシュし、サブスクライバーは関心のあるメッセージ トピックにのみ注意を払う必要があるため、疎結合設計が実現されます。この記事では、PHP でトピックベースのパブリッシュ/サブスクライブ モデルを実装する方法を紹介します。
- トピック クラスの作成
まず、メッセージのパブリッシュとサブスクリプションを管理するトピック クラスを作成する必要があります。このクラスには次の機能が必要です。
- #購読者のリストを記録する
- #購読者を登録するためのメソッドを提供する #購読者をキャンセルするためのメソッドを提供する
- Provide メッセージを公開するメソッドを提供します
- 次は、単純なトピック クラスの実装です。
class Subject { private $subscribers = []; public function subscribe($subscriber) { $this->subscribers[] = $subscriber; } public function unsubscribe($subscriber) { $key = array_search($subscriber, $this->subscribers); if ($key !== false) { unset($this->subscribers[$key]); } } public function publish($message) { foreach ($this->subscribers as $subscriber) { $subscriber->handleMessage($message); } } }
サブスクライバー インターフェイスを作成します
- 次に、サブスクライバが独自のメッセージ処理メソッドを実装するには、インターフェイスを定義する必要があります。このメソッドは、トピックがメッセージを公開するときに呼び出されます。
interface Subscriber { public function handleMessage($message); }
特定のサブスクライバ クラスの作成
- 次に、特定のサブスクライバ クラスを作成し、サブスクライバ インターフェイスを実装し、必要に応じて独自のメッセージを作成する必要があります。アプローチ。
class EmailSubscriber implements Subscriber { public function handleMessage($message) { echo "邮件订阅者收到消息:$message "; } } class SmsSubscriber implements Subscriber { public function handleMessage($message) { echo "短信订阅者收到消息:$message "; } }
パブリッシュ/サブスクライブ モデルの使用
- これで、パブリッシュ-サブスクライブ モデルを使用できるようになります。サブスクライブ モデル メッセージのパブリッシュとサブスクリプションを実装します。まずトピック オブジェクトを作成し、次にサブスクライバ オブジェクトを作成してトピックに登録します。最後に、トピック オブジェクトを通じてメッセージを公開します。
// 创建主题对象 $subject = new Subject(); // 创建订阅者对象 $emailSubscriber = new EmailSubscriber(); $smsSubscriber = new SmsSubscriber(); // 注册订阅者到主题对象 $subject->subscribe($emailSubscriber); $subject->subscribe($smsSubscriber); // 发布消息 $subject->publish("新消息"); // 取消订阅 $subject->unsubscribe($emailSubscriber); // 再次发布消息 $subject->publish("另一条消息");
邮件订阅者收到消息:新消息 短信订阅者收到消息:新消息 短信订阅者收到消息:另一条消息
上記の手順により、トピックベースのパブリッシュ/サブスクライブ モデルの実装に成功しました。この設計パターンにより、発行者と購読者の関係が切り離され、新しい購読者の拡大が容易になります。実際のプロジェクトでは、必要に応じてサブスクライバとトピックを追加して、より豊富なメッセージ発行およびサブスクリプション機能を実現できます。
以上がPHP でトピックベースのパブリッシュ/サブスクライブ パターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
