ホームページ バックエンド開発 PHPチュートリアル MVC は本当に PHP に適しているのでしょうか? _PHP チュートリアル

MVC は本当に PHP に適しているのでしょうか? _PHP チュートリアル

Jul 15, 2016 pm 01:25 PM
mvc php 始める フォーラム デザインパターン 適切な 分野

最近デザイン パターンが人気になり、MVC があらゆるところで見られ、PHP 分野も例外ではありません。PHP での MVC の使用について議論され始めています。しかし、PHP では M、V、C をどのように実装すればよいでしょうか? MVC は本当に PHP に適しているのでしょうか?ここで Easy は独自の考えをいくつか述べています。

MVC プロトタイプ

MVC はもともとデスクトップ プログラムに存在し、M はデータ モデルを指し、V はユーザー インターフェイスを指し、C はコントローラーを指します。 MVC を使用する目的は、M と V の実装コードを分離し、同じプログラムで異なる表現を使用できるようにすることです。たとえば、統計データのバッチをそれぞれ棒グラフと円グラフで表すことができます。 C の目的は、M と V の同期を確保することです。M が変更されると、V も同期して更新される必要があります。

MVC in JAVA

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 アーキテクチャは次の図で表すことができます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446700.html技術記事最近デザイン パターンが普及し、MVC があらゆるところで見られ、PHP 分野でも例外ではありません。PHP での MVC の使用について議論され始めています。しかし、PHP では M、V、C をどのように実装すればよいでしょうか? MVC は次のような用途に最適です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

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

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles