データが mysql データベースに保存され、php スクリプトによって操作されるチャット アプリケーションを設計しています。
私は、複数の異なるクライアントを開発する可能性を持ちたいと思っています。PHPスクリプトの機能をクライアントに公開するための最良のオプションは何ですか?
ありがとう
(上記のコメントで述べたように、これは MVC パターンではありません。)
通常、達成しようとしていることは、Web サービスを開発して、サーバー上で実行されているアプリケーションの特定の機能を公開する (およびデータベースにデータを保存する) ことで実行できます。クライアントとサービスの間で交換されるメッセージ形式を定義する必要があります。これは通常、JSON または XML 構文に基づいています。
さらにいくつかのポイント:
-データ- データ、つまりメッセージとユーザー情報を保存するために、Apache で利用できる mysql を選択しました。
MySQL は Apache (Httpd) では使用できません。Apache と MySQL は、それらをバンドルする「LAMP」スタックがあるという事実を除いて、互いにほとんど関係がありません。原則として、別の RDBMS (PostgreSQL、MS SQL など) や NoSQL データベースの使用を妨げるものは何もありません。
-Controller- データにアクセスして操作するには、Apache で利用できる php を選択しました。
繰り返しますが、PHP は Apache Httpd で実行するための一般的な選択肢ですが、PHP が唯一の選択肢ではありません (たとえば、Python や Perl でサービスを実装できます)。
-View(Client)- データベースにアクセスできる php スクリプトとやり取りできる限り、さまざまなクライアントを開発できます。今のところ、Java を使用してクライアントを構築しています。アプレットとして、またはダウンロード可能なスタンドアロン アプリケーションとして使用できるという利点があります。
2013 年、Java アプレットは過去のテクノロジーです。(スタンドアロン Java アプリケーションまたはサーバーサイド Java は異なります。)
各チャット ルームから最後のメッセージを選択するための cron ジョブがあります。これらのメッセージはファイルに書き込まれます。各チャットルームにはファイルがあります。メッセージを読むには、クライアントは対応するファイルを要求し、その内容をユーザーに提示する必要があります。チャット ルームにメッセージを送信するには、クライアントは送信先のチャットルーム、ユーザー ID などの情報を渡す php スクリプトを呼び出す必要があります。挿入はデータベースに負荷がかかりますが、読み取りは少し軽くなります。
これは、時期尚早の最適化または不適切な最適化の明らかなケースです (cron ジョブは最高でも毎分実行され、チャット ルームには理想的ではありません)。適切に設計されたデータベース (適切なインデックスなど) では、チャット ルームのトラフィックの処理に問題がない場合があります。この種の詳細に飛び込む前に、Web サービスとデータベースについてもう少し読みたいと思うかもしれません。