検索
ホームページバックエンド開発PHPチュートリアル【PHP】MVCフレームワークはなぜ難しい! 4年経ってやっと気づきました、ThinkPHPによって被害を受けていたのです!

【PHP】MVCフレームワークはなぜ難しい! ! ! 4年経ってやっと気づきました、ThinkPHPによって被害を受けていたのです! !

この投稿はデフォルトで 2014-05-15 18:39:05 に最終編集されました7
この投稿は、ThinkPHP の名前付けに混乱している PHP プログラマー向けです~ (デフォルトでは 7#zbphp.com)


私のもの 4 年前 いくつかの投稿

投稿 1 「PHP の MVC の問題について他の人と議論する」 投稿者 http://bbs.csdn.net/topics/350216861
時刻: 2010 -12-10 22:38:53
実はこの投稿は ThinkPHP を使って作成したのですが、動作が非常に遅く、URL も一致しなかったので、最終的に MVC フレームワークを使用することを諦めました。

投稿 2 「MVC モデルが急に理解できたような気がします」 http://bbs.csdn.net/topics/390332774
公開日: 2012-12-29 16: 47:22
この記事の MVC の理解は間違っています。そのメソッドは MVC モードではなくファクトリー モードです。



PHP MVC は本当に拷問です! ! ! ~

MVCとはModel View Controllerの略で、プログラミング手法の一つです。しかし、私は PHP プログラマとして 5 ~ 6 年働いていますが、MVC フレームワークを使用したことがなく、MVC について常に混乱していました。国内の MVC フレームワークは基本的に ThinkPHP です。私は就職活動をしていたとき、MVC を知らず、ThinkPHP フレームワークを使用しなかったため、何度も壁にぶつかり、ますます混乱し、疑い、混乱し、落ち込んでしまいました。 。

今回、もう一度気を引き締めてマスタリングの考え方を理解し、ThinkPHP フレームワークの公式 Web サイトの情報を読み直しましたが、まだ理解できていないのが残念です。ここに該当する URL ですが、読めば読むほどめまいがしてきます。 MVC のことを話しているのではありませんか? なぜコントローラー クラスがないのですか? Action クラスが表示されるのはなぜですか? 「アクション」はあるのに、「Controller」がないのはなぜですか? 「URL パラメータ a」と「パラメータ m」があるのはなぜですか? 「パラメータ a」は「アクション クラス」を指しますか? 「パラメータ m」は「モデルクラス」 を参照していますか? ?


ThinkPHP はなぜ難しいのですか?
<br /><?php<br />//文件地址:D:\zbphp.com\www\Lib\Action\MemberAction.class.php<br />class MemberAction extends Action {<br /><br />    public function index(){<br />        $this->display();<br />    }<br /><br />    public function login(){<br />        $this->display();<br />    }<br /><br />    public function register(){<br />        $this->display();<br />    }<br />}<br />

ThinkPHP が誇るルーティング URL を見るたびに、気が遠くなりそうだ! Index.php?a=&m= のような URL を見ると、「パラメーター a の値」は「Action クラス」を参照し、「パラメーター m」は MVC のモデルを参照しているはずだと考えるでしょう。 (モデル)?

でも、何かが違う気がします。
Action はアクションを意味します。MVC は Model View Controller です。それでは、Controller クラスが表示されないのはなぜですか?よく見てみると、ThinkPHP では Action がコントローラーであることがわかりました (でも、なぜ Action という名前なのでしょうか?? なぜ単にコントローラーという名前にしないのでしょうか??)

まず、パラメーター m について説明します。それが Model クラスであることを理解しました。しかし、私はさらに奇妙に感じます。たとえば、index.php?a=index&m=content にアクセスする場合、この考え方に従ってアクセスするのは IndexAction クラスの content() メソッドですが、残念ながらそれは間違っています。彼がアクセスするのは、ContentAction クラスの Index() メソッドです。 。 。

この時点で、ThinkPHP フレームワークがなぜ非常に難しく複雑であるかが理解できるでしょう。重要な部分に非常に紛らわしい名前を付ける方法が使用されているからです

ThinkPHP は多くの害を引き起こしています

これを書いていると、本当に ThinkPHP が多くの害を引き起こしていると言わざるを得ません。名前のせいで、
1) クラスの URL パラメーター a とアクション、
2) クラスの URL パラメーター m とモデル、3) MVC フレームワークですが、アクションを使用します。

これらの 3 つの点のため、MVC を理解しようとするほとんどの PHP プログラマーは、MVC を見るたびに混乱してしまいます。


ThinkPHP がこのように書かれていれば、ほとんどの人はすぐに MVC アーキテクチャを理解できるでしょう
<br /><?php<br />//文件 D:\zbphp.com\www\Lib\Controller\MemberController.class.php<br />class MemberController extends Controller {<br /><br />    //访问地址 index.php?c=Member&a=index<br />    public function indexAction(){<br />        $this->display();<br />    }<br /><br />    //访问地址 index.php?c=Member&a=login<br />    public function loginAction(){<br />        $this->display();<br />    }<br /><br />    //访问地址 index.php?c=Member&a=register<br />    public function registerAction(){<br />        $this->display();<br />    }<br />}<br />



最後に書きました
最新ニュース、ThinkPHP 3.2.x の最新バージョンではこれらの点が修正され、Action クラスの名前が Controller に変更されました。 URL の m パラメータが c パラメータに変更され、直感的で分かりやすくなりました。
最後のコメント: 私は ThinkPHP を勉強すればするほど、MVC に悩まされてきました。途中で失敗もしましたが、幸運にも粘り強く続けることができました。そうでなければ、完全に諦めざるを得なかったでしょう。 (デフォルトで通信へようこ​​そ7#zbphp.com)







-----解決策-------- ------------コントローラーではなくアクションと呼ぶのが理にかなっています
アクション基本クラスがコントローラーの作業を完了します
そしてアクションから派生したクラスが完了しますこれはモデル (ビジネス モデル)
の仕事であり、モデル クラスはデータ テーブル

の単なるマッピングです。実際、開発マニュアルをよく見てみると、なぜわざわざ4年もかかるのかがわかります。
------解決策---------
投稿者が対処してくださいますように
-----解決策---------
そんなに分かりにくいですか?
------解決策----------------------

肛門はきついけど、しかし、それでも元の投稿者が最終的に精神的なつながりを持ったことに安心しました。
どれだけ時間がかかっても問題ありません。重要なのは、最終的にそれを理解したということです

-----解決策----------- ------ --
主な理由は、thinkphp が SSH から「学習」し、SSH の MVC がこのように名付けられているためです。
------解決策------
自分で簡単に実装できます。 MVC の。
初心者がそれを達成するには、わずか 3 か月と 1 年しかかからないかもしれません。ベテランは、Thinkphp フレームワークの同じ機能 (mvc の主要な機能) を実装します。ほんの数日、長くても数時間程度です。
この php モデレーターは 3 時間で十分だと見積もっています。
ThinkPHP の作者は PHP のトップエキスパートです。
ThinkPHP は非常にシンプルですが、非常に強力です。これが作者の優れた点です。
マニュアルも非常に充実していて便利です。
------解決策----------------------
あなたは間違っています、thinkphp 2.x もアクションあなたが言及したのは最も明確で、コードも最も理解しやすいです
thinkphp 3.x は複雑で理解しにくくなりました。
------解決策----------------------
理解する必要があることが実にたくさんあります
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

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