MVC は本当に PHP に適しているのでしょうか?
MVC プロトタイプ
MVC はもともとデスクトップ プログラムに存在していました。M はデータ モデルを指し、V はユーザー インターフェイスを指し、C はコントローラーを指します。 MVC を使用する目的は、M と V の実装コードを分離して、同じプログラムで異なる表現を使用できるようにすることです。たとえば、統計データのバッチをそれぞれ棒グラフと円グラフで表すことができます。 C の目的は、M と V の同期を確保することです。M が変更されると、V も同期して更新される必要があります。
JAVAにおけるMVC
JAVAはWeb分野にMVCを導入し、これをベースにModel2と呼ばれるシステムが構築されました。 Web の特殊性により、JAVA の MVC とデスクトップの MVC は完全には一致しません。主な理由は、Web の V は永続的ではなく、ユーザーがアクセスするたびに V を再生成する必要があるため、V は常に M と一致しており、C が同期を制御する必要がないためです。では、JAVA の C は何をしているのでしょうか? JAVA の C は通常、プロセス ステアリングに使用されますが、実際に使用されるのは Dispatch モードであり、Desktop の C ではありません。
PHP の MVC
PHP で JAVA の MVC をそのままコピーすることは不可能です。この問題は主に M に現れます。JAVA では、M はビジネス ロジックやプレゼンテーション ロジックから独立したデータ モデルであり、JAVA Bean がこの役割を果たします。 PHP プロセスはメモリ内に長期間常駐しません。PHP ページの実行が開始されたときにのみ作成され、ページ解釈の実行が終了したときに終了します。このような場合、M を直接実装することはできません。したがって、MVC パターンを実装すると主張するすべての PHP プログラムは、シミュレーションを通じてのみ M を実装できます。実装方法は通常、現在のページの終了前にデータベースまたは Cookie/セッションにデータを保存し、次のページでデータベースまたは Cookie/セッションを通じて M を再構築します。 JAVA の Bean と比較すると、この方法は、メモリにデータを書き込むという単純な操作を、サーバーからクライアントまたはデータベースに送信し、再度送信する必要があると言えます。データ モデルを維持するためにこのような大きなオーバーヘッドを使用し、最後にそのモデルをデータベースに戻すよりも、必要に応じてデータベース内のデータを直接更新する方が良いでしょう。
PHP における現在の MVC アーキテクチャは、次の図で表すことができます。
それでは、V を見てみましょう。現在、多くの PHP プログラムは単に何らかのテンプレート テクノロジを使用し、説明に「MVC アーキテクチャの採用」と記載しています。実際、大多数の PHP テンプレート プログラムは、MVC が重視する表示ロジックとビジネス ロジックの分離ではなく、HTML と PHP を分離しているだけです。 HTML と PHP が混在するページも MVC の一部にすることができます。表示ロジックとビジネスロジックを分離する方法については、まだ満足のいく解決策がありません。個人的には、その実施計画には賛成です。 C に関しては、JAVA に似ており、現在でもステアリングに使用されています。これは、PHP では実際には重要ではありません。

ホット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)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
