【什么是MVC?】?
MVC是一個(gè)可以讓你把“三個(gè)部分(即MVC的全稱,Model、View、Controller)”諧調(diào)地組成一個(gè)復(fù)雜應(yīng)用程序的概念。一輛汽車就是一個(gè)在現(xiàn)實(shí)生活中非常好的MVC例子。我們看車都看兩個(gè)View(顯示)部分:內(nèi)部和外部。而這兩個(gè)都離不開一個(gè)Controller(控制者):司機(jī)。剎車系統(tǒng)、方向盤和其他操控系統(tǒng)代表了Model(模型):他們從司機(jī)(Controller)那里取得控制方法然后應(yīng)用到內(nèi)部和外觀(View)。?
【網(wǎng)絡(luò)上的MVC】?
MVC框架所涵蓋的概念相當(dāng)簡單并且極度靈活。基本的概念就是,你有一個(gè)單獨(dú)的控制器(如index.php)用來控制所有建立在參數(shù)請求基礎(chǔ)上的框架內(nèi)應(yīng)用程序。這個(gè)控制器通常包含了(最小程度上)一個(gè)定義模型的參數(shù)、一個(gè)事件和一個(gè)GET參數(shù)。這樣控制器就能確認(rèn)所有的請求然后運(yùn)行相應(yīng)的事件。打個(gè)比方來說,一個(gè)像這樣/index.php?module=foo&event=bar的請求很有可能就是用來載入一個(gè)名叫foo的類,然后運(yùn)行foo::bar()[就是其中的bar()函數(shù)]。這樣做的好處有:?
一個(gè)對應(yīng)所有應(yīng)用程序的接口?
同時(shí)維護(hù)一個(gè)應(yīng)用程序內(nèi)無數(shù)的代碼非常麻煩,因?yàn)槊恳欢未a都有自己的相對路徑、數(shù)據(jù)庫鏈接、驗(yàn)證等等。而這樣做就免除你在這方面的煩惱,允許你合并并重復(fù)使用代碼?
【為什么要?jiǎng)?chuàng)建作者自己的MVC框架?】?
迄今為止,我沒有見到過太多用PHP寫的MVC框架。事實(shí)上我僅僅知道一個(gè)-Solar,是完全用PHP5寫的。另外一個(gè)是Cake,一個(gè)試圖成為PHP的RoR(Rubyalign=centerbgColor=#e3e3e3border=1>
<?php require_once('config.php');//Otherrequires,DBinfo,etc. $APP_DB='mydb'; $APP_REQUIRE_LOGIN=false;//Settotrueifscriptrequireslogin $APP_TEMPLATE_FILE='foo.php';//Smartytemplate $APP_TITLE='MyApplication'; if($APP_REQUIRE_LOGIN==true){ if(!isset($_SESSION['userID'])){ header("Location:/path/to/login.php"); exit(); } } $db=DB::connect('mysql://'.$DB_USER.':'.$DB_PASS.'@localhost/'.$APP_DB); if(!PEAR::isError($db)){ $db->setFetchMode(DB_FETCHMODE_ASSOC); }else{ die($db->getMessage()); } //Putyourlogichere //Outputthetemplate include_once(APP_TEMPLATE_PATH.'/header.php'); include_once(APP_TEMPLATE_PATH.'/'.$APP_TEMPLATE_FILE); include_once(APP_TEMPLATE_PATH.'/footer.php'); ?>
天哪,只是看這些代碼都會讓我有退縮的欲望。這段代碼的概念就是確保每一個(gè)應(yīng)用程序都能適用于這個(gè)處理方法,比如我可以簡單地將template.txt拷進(jìn)myapp.php,改變一些變量,瞧,它就能運(yùn)行起來了。盡管如此,這個(gè)組織嚴(yán)密的處理方法存在一些嚴(yán)重的缺點(diǎn):
如果我的老板想讓作者用myapp.php在一些情況下輸出PDF、一些情況下輸出HTML、一些情況下(直接提交的XML請求)SOAP,我該怎么辦?
如果這個(gè)應(yīng)用程序需要IMAP或LDAP驗(yàn)證,我該怎么辦?
我該如何處理各種不同的代碼(包括編輯、升級和刪除)?
我該如何處理多級驗(yàn)證(管理員vs.非管理員)?
我該如何啟用輸出緩存?www.phpv.net轉(zhuǎn)載請注明出處
【新方式】
將所有東西都扔進(jìn)這個(gè)MVC框架,你會發(fā)現(xiàn)生活是如此簡單。請對比以下代碼:
<?php classmyappextendsFR_Auth_User { publicfunction__construct() { parent::__construct(); } publicfunction__default() { //Dosomethinghere } publicfunctiondelete() {} publicfunction__destruct() { parent::__destruct(); } } ?>
注意這段代碼顯然不是用來鏈接到一個(gè)數(shù)據(jù)庫、判斷一個(gè)用戶是否已經(jīng)登陸、或者輸出任何其他信息。控制器掌握了所有的一切。?
如果我想驗(yàn)證LDAP,我可以建立FR_Auth_LDAP??刂破骺梢宰R別某些輸出方法(比如$_GET['output'])并可以隨時(shí)轉(zhuǎn)換成PDF或者SOAP。事件處理delete,只負(fù)責(zé)刪除,其他的它都不管。因?yàn)檫@個(gè)模塊擁有一個(gè)FR_User類的實(shí)例,它可以簡單地判斷一個(gè)用戶是否已經(jīng)登陸等等。Smarty,作為模板引擎控制緩存是理所當(dāng)然的,但是控制器同樣可以控制一部分緩存。?
從前面講的老方式到MVC方式對于很多人來講可能是一個(gè)全新、陌生的概念,但是一旦你轉(zhuǎn)換到了這樣一個(gè)概念,那么要轉(zhuǎn)回去將是件相當(dāng)困難的事情。?

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Pengenalan Dalam dunia digital yang berkembang pesat hari ini, adalah penting untuk membina aplikasi WEB yang mantap, fleksibel dan boleh diselenggara. Seni bina PHPmvc menyediakan penyelesaian yang ideal untuk mencapai matlamat ini. MVC (Model-View-Controller) ialah corak reka bentuk yang digunakan secara meluas yang memisahkan pelbagai aspek aplikasi kepada komponen bebas. Asas seni bina MVC Prinsip teras seni bina MVC ialah pengasingan kebimbangan: Model: merangkum data dan logik perniagaan aplikasi. Lihat: Bertanggungjawab untuk membentangkan data dan mengendalikan interaksi pengguna. Pengawal: Menyelaras interaksi antara model dan pandangan, mengurus permintaan pengguna dan logik perniagaan. Seni Bina PHPMVC Seni bina phpMVC mengikut corak MVC tradisional tetapi juga memperkenalkan ciri khusus bahasa. Berikut ialah PHPMVC

Seni bina MVC (Model-View-Controller) adalah salah satu corak yang paling popular dalam pembangunan PHP kerana ia menyediakan struktur yang jelas untuk mengatur kod dan memudahkan pembangunan aplikasi WEB. Walaupun prinsip asas MVC mencukupi untuk kebanyakan aplikasi web, ia mempunyai beberapa had untuk aplikasi yang perlu mengendalikan data kompleks atau melaksanakan fungsi lanjutan. Mengasingkan lapisan model Mengasingkan lapisan model ialah teknik biasa dalam seni bina MVC lanjutan. Ia melibatkan memecahkan kelas model kepada subkelas yang lebih kecil, setiap satu memfokuskan pada fungsi tertentu. Contohnya, untuk aplikasi e-dagang, anda mungkin menguraikan kelas model utama kepada model pesanan, model produk dan model pelanggan. Pemisahan ini membantu meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod. Gunakan suntikan pergantungan

Rangka kerja SpringMVC dinyahsulit: Mengapakah ia begitu popular, contoh kod khusus diperlukan Pengenalan: Dalam bidang pembangunan perisian hari ini, rangka kerja SpringMVC telah menjadi pilihan yang sangat popular di kalangan pembangun. Ia adalah rangka kerja Web berdasarkan corak seni bina MVC, menyediakan kaedah pembangunan yang fleksibel, ringan dan cekap. Artikel ini akan menyelidiki daya tarikan rangka kerja SpringMVC dan menunjukkan kuasanya melalui contoh kod tertentu. 1. Kelebihan rangka kerja SpringMVC Kaedah konfigurasi fleksibel Spr

Corak MVC (Model-View-Controller) ialah corak reka bentuk perisian yang biasa digunakan yang boleh membantu pembangun mengatur dan mengurus kod dengan lebih baik. Corak MVC membahagikan aplikasi kepada tiga bahagian: Model, View dan Controller, setiap bahagian mempunyai peranan dan tanggungjawabnya sendiri. Dalam artikel ini, kita akan membincangkan cara melaksanakan corak MVC menggunakan PHP. Model Model A mewakili data aplikasi dan pemprosesan data. secara amnya,

Cara melaksanakan seni bina MVC berskala dalam rangka kerja PHP8 Pengenalan: Dengan perkembangan pesat Internet, semakin banyak laman web dan aplikasi menggunakan corak seni bina MVC (Model-View-Controller). Matlamat utama seni bina MVC adalah untuk memisahkan bahagian aplikasi yang berbeza untuk meningkatkan kebolehselenggaraan dan kebolehskalaan kod. Dalam artikel ini, kami akan memperkenalkan cara untuk melaksanakan seni bina MVC berskala dalam rangka kerja PHP8. 1. Fahami corak seni bina MVC Corak seni bina MVC ialah reka bentuk perisian

Dalam pembangunan Web, MVC (Model-View-Controller) ialah corak seni bina yang biasa digunakan untuk memproses dan mengurus data aplikasi, antara muka pengguna dan logik kawalan. Sebagai bahasa pembangunan web yang popular, PHP juga boleh menggunakan seni bina MVC untuk mereka bentuk dan membina aplikasi web. Artikel ini akan memperkenalkan cara menggunakan seni bina MVC untuk mereka bentuk projek dalam PHP, dan menerangkan kelebihan dan langkah berjaga-jaganya. Apa itu MVCMVC ialah corak seni bina perisian yang biasa digunakan dalam aplikasi web. MV

Membangunkan MVC dengan rangka kerja PHP8: Konsep dan teknik penting yang perlu diketahui oleh pemula Pengenalan: Dengan perkembangan pesat Internet, pembangunan Web memainkan peranan penting dalam industri pembangunan perisian masa kini. PHP digunakan secara meluas untuk pembangunan web, dan terdapat banyak rangka kerja matang yang membantu pembangun membina aplikasi dengan lebih cekap. Antaranya, seni bina MVC (Model-View-Controller) adalah salah satu corak yang paling biasa dan digunakan secara meluas. Artikel ini akan memperkenalkan cara pemula boleh menggunakan rangka kerja PHP8 untuk membangunkan aplikasi MVC.

Seni bina model-view-controller (mvc) ialah corak reka bentuk yang berkuasa untuk membina aplikasi WEB yang boleh diselenggara dan berskala. Seni bina PHPMVC menguraikan logik aplikasi kepada tiga komponen berbeza: Model: mewakili data dan logik perniagaan dalam aplikasi. Lihat: Bertanggungjawab untuk menyampaikan data kepada pengguna. Pengawal: Bertindak sebagai jambatan antara model dan pandangan, mengendalikan permintaan pengguna dan menyelaraskan komponen lain. Kelebihan seni bina MVC: Pemisahan kod: MVC memisahkan logik aplikasi daripada lapisan pembentangan, meningkatkan kebolehselenggaraan dan kebolehskalaan. Kebolehgunaan semula: Komponen paparan dan model boleh digunakan semula merentas aplikasi yang berbeza, mengurangkan pertindihan kod. Pengoptimuman Prestasi: Seni bina MVC membenarkan caching paparan dan hasil model, sekali gus meningkatkan kelajuan tapak web. Mesra Ujian: Detasmen
