A. php除了mvc還有什麼架構
MVC
MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。
OOP
面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是,計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。OOP 達到了軟體工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。OOP 主要有以下的概念和組件:
組件 - 數據和功能一起在運行著的計算機程序中形成的單元,組件在 OOP 計算機程序中是模塊和結構化的基礎。
抽象性 - 程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關注的能力。
封裝 - 也叫做信息封裝:確保組件不會以不可預期的方式改變其它組件的內部狀態;只有在那些提供了內部狀態改變方法的組件中,才可以訪問其內部狀態。每類組件都提供了一個與其它組件聯系的介面,並規定了其它組件進行調用的方法。
多態性 - 組件的引用和類集會涉及到其它許多不同類型的組件,而且引用組件所產生的結果得依據實際調用的類型。
繼承性 - 允許在現存的組件基礎上創建子類組件,這統一並增強了多態性和封裝性。典型地來說就是用類來對組件進行分組,而且還可以定義新類為現存的類的擴展,這樣就可以將類組織成樹形或網狀結構,這體現了動作的通用性。
由於抽象性、封裝性、重用性以及便於使用等方面的原因,以組件為基礎的編程在腳本語言中已經變得特別流行。
ORM
對象-關系映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟體開發方法發展而產生的。面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關系資料庫是企業級應用環境中永久存放數據的主流數據存儲系統。對象和關系數據是業務實體的兩種表現形式,業務實體在內存中表現為對象,在資料庫中表現為關系數據。內存中的對象之間存在關聯和繼承關系,而在資料庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)系統一般以中間件的形式存在,主要實現程序對象到關系資料庫數據的映射。
面向對象是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關系資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,對象關系映射技術應運而生。
B. php中laravel和mvc是什麼意思
Laravel是一個簡潔、優雅的PHP開發框架
MVC是一種模型-視圖-控制器的web開發模式。
C. PHP開發工程師崗位職責
PHP開發工程師崗位職責15篇
在現實社會中,崗位職責的使用頻率逐漸增多,崗位職責是指工作者具體工作的內容、所負的責任,及達到上級要求的標准,完成上級交付的任務。那麼崗位職責怎麼制定才能發揮它最大的作用呢?以下是我為大家收集的PHP開發工程師崗位職責,歡迎大家借鑒與參考,希望對大家有所幫助。
職責:
1. 負責公司內部運營ERP管理系統和跨境電商(外貿平台)行業相關軟體系統的設計和開發;
2. 需要您使用PHP技術,完成系統的開發工作;
3. 准確理解部門員工需求,及時跟進系統的改良和新模塊的開發;
4. 較快掌握公司產品業務和系統架構邏輯,盡快參與到項目開發中;
5. 承擔產品主要功能開發,分析模塊需求和解決開發中遇到的技術難點,編寫符合公司要求的高質量代碼;
6. 參與公司的軟體體系建設工作,為公司內部提供軟體的技術支持和服務;
7. 對互聯網電商軟體行業有濃厚興趣;
8. 完成上級分配的其他軟體開發相關工作任務。
崗位要求:
1.計算機專業畢業,三年以上的開發經驗;
2. 編程功底:具備良好的項目開發經驗,能獨立的承擔開發任務,負責軟體開發,編碼、測試;
3. 編程語言:精通PHP;
4. 項目經驗:有開發過大型項目的開發經驗;高性能系統;有跨境電商(外貿)項目(ERP、獨立站、或刊登系統)開發經驗者優先考慮;熟悉主流跨境電商平台(Amazon、eBay、Aliexpress、Wish等)的API集成者優先考慮;有在物流、倉儲、電子商務等行業從事軟體開發者優先考慮;
6. 資料庫:對索引、事務、鎖有一定的了解;
7. 項目溝通:具有良好的溝通表達能力、執行力、責任心、自我管理能力和團隊精神,對待工作積極、嚴謹、踏實,能承受較大1000的工作壓力;
8. 編碼規范:具備良好的編碼規范和編程風格,命名規范,邏輯性強,代碼冗餘率低;
職責:
1、負責網站平台上線維護及網站功能拓展;
2、負責系統框架的整合,程序開發和維護;
3、負責新功能各業務模塊的流程設計及實現;
4、合理的性能優化、代碼設計優化、資料庫結構的設計及優化;
任職要求:
1.本科及以上學歷,計算機相關專業;3年以上PHP工作經驗.
2.具備極強的責任心
2.擅長PHP語言,熟悉面向對象編程,熟悉的thinkphp3.2 , thinkphp5等開源框架.
3.精通MySQL資料庫開發,能熟練地運用SQL語言,了解資料庫配置管理,性能優化.
4.熟悉前端WEB開發技術,包括js,jq,div+css,ajax,等技術.
5.熟悉運用各種API介面。
6.有獨立的二次開發能力,和良好的審美觀、邏輯性強,代碼冗餘率低,了解網站空間伺服器等網路安全.
7.有物流行業開發經營或電商方面項目經驗優先.
職責:
1、負責公司後端的研發,保障系統的穩定性和質量
2、與業務需求部門及項目經理溝通,理解需求,進行架構設計;
3、搭建開發框架、負責核心代碼的編寫,解決技術難點;
4、界定、分析和解決系統中存在的問題和缺陷;
5、對系統進行持續改進,提升系統的性能、可擴展性、可維護性;
6、持續改進系統架構、核心演算法或者核心技術等,保證系統高性能、高可用性和高可擴展性-新技術預研,完成項目的`選型和設計,難點攻關
任職資格:
1.本科及以上學歷,3年以上開發經驗;
2.良好的代碼習慣,要求結構清晰、命名規范、邏輯性強、代碼冗餘率低;
3.熟悉Mysql,有較為熟練地掌握mysql語言及編寫存儲過程、觸發器等資料庫開發的能力;
4.精通PHP語言,精通CGI標准和HTTP等互聯網協議;
5.熟練掌握javascript、div+css等web前端布局及多瀏覽器兼容相關技術;
6.熟練使用linux系統,熟悉在Linux下配置php+mysql的運行環境;
7.有良好的溝通、協調能力和學習能力,具備良好的團隊合作精神,對工作積極嚴謹踏實,能承受較大的工作壓力。
職責:
1、負責快速迭代產品線開發、升級、維護;
2、參與或主導需求分析,並實現新需求(功能);
3、獨立或分組進行項目分解開發及優化;
4、負責核心功能板塊開發;
5、獨立解決技術難題,及時定位並驅動落實。
任職要求:
1、計算機相關專業專科及以上學歷,3年以上開發經驗;
2、熟練掌握PHP語言知識,至少熟練使用一個流行框架TP5、Laraval、Phalcon;
3、熟練掌握MySQL資料庫操作、熟練使用存儲過程、事務;
4、熟練完成第三方介面接入,微信、支付寶、簡訊、雲存儲等;
5、熟練使用git、SVN等開發工具,掌握Linux環境操作;
6、有高並發、大數據開發經驗,有較好的學習能力和溝通能力,有創新能力和責任感,熟悉軟體工程,具有良好的代碼編寫規范和書寫文檔的習慣。
職責:
1、參與產品初期的需求定義
2、根據需求快速完成開發方案設計
3、高效完成功能開發
4、功能自測、代碼定期自查、框架及系統完善
5、參與日常的功能快速迭代,完成開發、自動化測試到產品發布的整個流程。
任職要求:
1、扎實的計算機編程及網路基礎,熟悉常用軟體設計模式
2、3年以上PHP開發經驗,熟練練使用PHP框架,有一個以上Laravel或Swoft的完整項目的開發經驗
3、熟練使用MySQL資料庫,對索引、鎖和事務有了解,有並發處理和調優經驗
4、熟練使用Redis、Memcache等常見非關系型資料庫
5、熟練使用HTML、CSS、Javascript、Jquery、Vue等前端技術,有Vue實際使用經驗
6、有支付、OSS、消息通訊等一種以上三方應用的集成經驗
7、熟悉Docker、Git、及常用Linux命令使用有,有生產伺服器運維經驗的優先
8、熟悉或掌握一種或以上其他服務端語言的優先
9、有SaaS系統、社交軟體、直播平台高並發處理能力經驗的優先
10、有責任心,具備良好的編碼習慣,較強的學習及溝通能力。
職責:
1.負責主要項目結構設計,架構原型實現及核心模塊的開發工作;
2.負責軟體項目平台的設計與開發;
3.負責技術方案決策、技術風險防範與化解,分析系統瓶頸,解決各種疑難問題,對系統進行性能調優;
4.指導團隊不斷提高技術能力和開發效率,從技術層面持續提高用戶體驗;
5.負責技術團隊建設和管理,注重人才培養和營造創新的研發文化。
任職資格:
1.計算機專業全日制本科以上學歷,4年以上PHP網站設計編程(多語言)經驗;
2.有扎實的PHP基礎並熟練獨立使用php+mysql開發;
3.理解ajax原理,熟悉javascript、jquery使用,理解web標准;
4.理解http協議,熟悉linux環境下的web開發優先,有豐富電子商務相關經驗的優先;
6.具備良好的代碼編程習慣,邏輯思維嚴密,有較強的數據分析和問題排查能力;
7.熟悉JAVA、C、python其中一種優先;
8.良好的表達能力,能夠清晰和准確地描述問題;
9.能適應快速成長型技術團隊的要求,具備自我管理能力和創業精神,能夠承擔一定的工作壓力;
10、有責任心,善於溝通,有鑽研和學習精神,擅長分析問題解決問題。
工作職責:
1、承擔機器學習系統和演算法的研發,為位元組跳動全系產品提供增長演算法策略支持,包括不限於頭條、西瓜視頻、抖音、TikTok等;
2、負責頭條用戶增長智能引擎中的演算法策略部分,例如人群Lookalike、觸達決策、著陸頁個性化等。
任職要求:
1、具備強悍的編碼能力和扎實的數據結構和演算法功底;
2、熟悉至少一種主流深度學習編程框架(TensorFlow/Caffe/MXNet),熟悉其底層架構和實現機制,熟悉深度學習演算法(CNN/RNN/LSTM等);
3、熟悉常見的開源組件,參與過高性能在線服務研發者優先;
4、有大規模海量數據機器學習/數據挖掘/計算廣告/搜索引擎相關經驗者優先;
5、具備良好的溝通和表達能力,有較好的產品意識者優先。
職責:
1、負責企業網站產品的開發及技術設計;
2、從事php項目開發,能獨立開發、製作整站或獨立完成局部程序;
3、熟練使用PHP/MySQL開發;熟悉Sql語法,包括資料庫設計,速度優化;
4、熟悉Yii框架
5、熟悉php、Html5、JavaScript、div+CSS。
任職要求:
1、熟練使用PHP+MySQL,有扎實的php語言基礎知識,能獨立設計網站架構,完成前後台代碼編寫工作;
2、專科及以上學歷,做過PHP網站程序開發2年工作經驗以上,能獨立完成一般性網站的開發,有大中型項目開發經驗優先;
3、熟練掌握thnkphp框架,熟悉smarty, 具有PHP開發經驗和MVC實際開發經驗;
4、熟悉各種WEB技術,並有實際的項目經驗;
5、良好的編程習慣、閱讀能力、理解能力、學習能力,思路清晰,工作規范。
職責:
1.負責金融類交易項目產品的開發。
2.參與需求討論並能獨立完成的程序,以及撰寫程序文檔;
3.與產品經理一起配合開發以及系統的日常維護;
4.對測試環境,開發環境,以及線上環境能獨立進行部署;
5.積極的與同事進行技術交流與溝通。
崗位要求:
1、計算機相關技術專業,大專及以上學歷;
2、有金融行業,數字貨幣交易所工作經驗優先;
3、有3年以上使用PHP開發工作經驗;
4、精通分布式、緩存、消息、搜索等機制;
5、熟練運用PHP、JavaScript、MySQL、HTML、CSS等WEB開發技術,能獨立完成功能前後端開發和資料庫調優。
6、責任心強,學習能力強,分析和解決問題能力強;
7、良好的團隊協作和溝通能力,能夠承擔一定工作壓力。
職責:
1.根據業務需求,進行架構分析、設計及實現;
2.依照業務需求,進行相關功能的資料庫設計;
3.根據業務及前端需求,及時、高效、高質量產出符合RESTFUL規范的api介面;
4.參與系統微服務化,如微服務實現、Docker環境建設、Jenkins等自動化部署。
任職資格:
1.熟悉關系型資料庫,如MySQL,能依據業務需求進行合理的資料庫設計;
2.精通PHP,PHP方面至少精通一種MVC框架,熟悉Yii框架優先;
3.熟悉前後端分離開發模式;
4.熟練使用git進行代碼管理;
5.熱愛互聯網開源生態,充滿求知慾,具有非常強的持續學習能力;
6.有良好的溝通能力和團隊協作精神;
7.有微服務開發實踐,熟悉Docker、Kafka、Flink更佳。
職責:
1、負責公司網站的開發設計及開發小組工作安排;
2、負責高性能應用架構設計和優化及技術調研,性能調優等技術開發工作,負責網站程序的詳細設計、編碼和內部測試的組織實施;
3、協調系統內部、跨系統的技術方案制定和評審,保證系統的可擴展、易維護性;
4、參與開發和維護現有的網站程序。
5、對項目的規劃,開發與前後端的接連,跟進整個項目各模塊的進度。
6、對線上系統的穩定性和可用性負責;
任職資格:
1、計算機相關專業,需3-5年及以上PHP後端工作經驗,熟練掌握HTML、Ajax、JavaScript、技術,有vuejs開發經驗者優先;
2、熟悉yii2、laravel等至少一種框架,熟悉各種主流的MVC開發框架的使用及其原理;精通LAMP/LNMP架構開發,掌握MySQL主從開發、索引優化、查詢優化和存儲優化,以及PHP緩存、靜態化等技術。
3、熟悉Linux伺服器性能優化,NGINX的PHP環境配置和PHP應用,精通MySQL一種或以上關系資料庫使用,至少精通redismemcach等一種nosql資料庫;
4、工作認真,有條理,責任心強;具有很強的溝通能力及團隊合作精神,具備很好的學習鑽研能力,樂觀開朗,工作能夠服從安排;有很強的進取精神,能承受一定的工作壓力;
職責:
1、負責公司網站及網路應用產品開發和維護;
2、根據產品需求完成架構和模塊設計、編碼、測試工作;
3、按照項目計劃,遵循公司軟體開發流程按時提交高質量代碼,完成開發任務;
4、項目,軟體開發設計文檔的編寫、維護,以及其他與項目相關工作;
5、與產品、項目經理、測試部門溝通保證產品的質量和開發進度;
6、參與產品、項目設計方案評審,並提出問題和改進意見。
職位要求:
1、計算機及相關專業,學歷本科以上;
2、3年以上PHP/Web開發經驗,至少有3個完整項目的開發經驗;
3、熟悉Linux,MySQL,熟悉B/S系統前後端相關開發技術及框架;
4、英語讀寫流利,能在工作環境中熟練運用,聽說流利的優先;
5、熟悉Html/CSS/Div布局,熟練使用JQuery,JavaScript,XML,AJAX ;
6、具有獨立分析、解決問題的能力,具有良好的編碼習慣;
7、具有良好的溝通能力,團隊合作精神,高度的責任心,能承擔工作壓力。
職責:
1.熟悉thinkcmf5框架優先錄取
2.核心業務功能開發和代碼維護;
3.負責網站後端程序開發、資料庫結構設計和搭建;
4.參與網站產品的設計和開發,配合產品經理進行技術決策。
崗位要求:
1.有開發商城系統/微信定製開發優先;1-2年工作經驗也可考慮;
2.熟練掌握PHP,熟悉面向對象的軟體設計方法;熟悉MVC三層架構的開發,熟練應用PHP框架Thinkphp5。
3.熟悉HTML、CSS、Javascript等前端技術,熟悉jquery者優先;
4.熟悉Linux常用命令;MySQL資料庫開發及常用優化方法;
5.有良好的代碼習慣,要求結構清晰、命名規范、邏輯性強、代碼冗餘率低,代碼注釋清晰;
6.性格開朗、喜歡鑽研技術,具有較強的分析和解決問題的能力。
職責:
1、負責公司CMS系統優化和新產品開發;
2、按照項目計劃,與項目組其他成員協同工作實現開發目的;
3、協助工程師測試和發布系統,准備相關的技術文檔,協助解決各種技術問題;
4、負責文檔撰寫,在前期期間設計交付URL介面文檔、模板數據描述文檔,在編碼期間能撰寫清晰明了的注釋。
任職資格:
1、熟練基於windows/Linux系統的PHP+MySQL開發;
2、相關專業畢業,1年以上PHP編程經驗,熟悉Ajax的前台技術;
3、擁有良好的代碼習慣,要求結構清晰,命名規范,邏輯性強,代碼冗餘率低;
4、熟悉ThinkPHP框架開發或者二次開發的優先;
5、能獨立用php開發一般的項目,對軟體編程有較透徹的了解;
6、良好的溝通能力和團隊合作精神。
職責:
1、參與項目的架構設計,架構原型實現及核心模塊的開發工作;
2、參與系統需求分析與設計,並負責完成PHP核心代碼,介面規范制定;
3、重構現有架構,優化服務端性能。
任職要求:
1、1年以上LNMP開發經驗,熟悉Ecshop二開的優先。
2、熟練運用PHP、mysql,至少熟悉一種MVC框架;
3、熟悉Mysql資料庫,掌握各種調優技巧,熟悉多種nosql;
4、對代碼和設計質量有嚴格要求,重視CodeReview,良好的編碼習慣和嚴格的編碼規范;
5、有軟體架構、伺服器架構等方面經驗,了解大負載大流量伺服器端解決方案;
6、有帶團隊經驗,具備良好的團隊合作精神;
7、能承受大工作量負荷。
;D. 什麼是MVCPHP
MVC由Model(模型),view(視圖)和Controller(控制器)組成,PHP MVC可以更高效地管理好3個不同層的PHP代碼。
Model:數據信息存取層。
View:view層負責將應用的數據以特定的方式展現在界面上。
Controller:通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
E. 如何入門一個PHP MVC框架
一。選擇 一個框架
至於選哪一種框架,主要看個人,1)最好是身邊朋友都有人在用,因為你不懂的時候方便解決。有時候論壇,手冊上的解答你未必理解的通透,特別是沒有接觸過框架的phper來說,更是不知所雲。2)選擇此框架論壇比較活躍的,這是身有同感,前一段時間玩qeephp框架的時間,論壇冷冷清清的,工作需要,沒辦法,只能硬著上了,遇到問題的時候,回答的問題的人很少,同時手冊之類只寫了某部分,還有很多部分並沒有寫上去。對於一個新手來說,直接KO了。
二。熟悉資料庫的操作
每一個框架都有自己的操作方法,這是必須要學會的。select,delete,insert,update這幾種用法摸熟。最快的方法是看手冊,查找對應的操作。同時要知道其中的調試方法,你就可以看到原生的操作有沒有錯誤。基本都會了,這個框架至少可以開始開發項目了。
三。論壇官方網站
這個很重要,先看手冊,遇到問題先在論壇里查找一下有沒有人遇到過你這種情況,有就不用發問了。然後同一個問題,很少人再去回答一遍。有時候遇到自己能解決的問題,也回答一下,這樣可以加深你的理解,不要覺得浪費你的時間,這前提是你有時間的情況下。所以本著人人為我,我為人人的精神
四。下載一個案例。
我經常是這樣,不知道某個功能怎樣調用的時候,直接找案例里相對應的功能看代碼,看人家是怎樣調用的,再加上自己的見解。
五。手冊的類
MVC一般都有自帶一些類了,方便用戶操作,有了自己就不用再寫對應的代碼了。
六。要有「拿來主義」精神
別人的東西,你自己融會貫通了,東西就是你的了。
F. 誰能幫我解釋下PHP的MVC框架呀用通俗易懂的語言吧,我是小白, 感激不盡!
我說個最通俗的把(大神別噴)
所謂的mvc,其實就是把代碼分開寫
一個正常的網頁,肯定是先有php運算,然後再有html顯示,你把php運算和html顯示,用2個文件分開寫,就有了最簡單的模板分類的概念
MVC一樣的意思,就是把模型控制器之類的分開寫,分開寫的好處很多,在這里不多說,道理想想就明白,細分後分配工作就簡單
G. PHP的哪個MVC框架最值得推薦
1、Laravel,laravel這個框架很有意思,定時任務,數據遷移,大概你能在web中想到的功能這個框架都可以提供,它的路由借鑒了Ruby on Rails 和Python的flask框架,但是還提供了web方面其它的一些功能,你可以把它想像成PHP中像Java一樣強大的Web中的瑞士軍刀,前提是你不考慮性能,因為它的實現使用了大量的閉包和反射,大概在PHP里嚴格引入設計模式的也只有這個了。
生產效率:5星
學習難度:5星(5星為最難,學習成本最高,下同)
性能:2星
社區活躍:4星(社區活躍可以很方便的找到別人已經開發的功能,專指中文文檔,組件豐富性)
2、ThinkPHP5,大概3年前研究過TP3源碼,使用起來簡單,因為自動載入的問題,性能是個坑,現在發展到5,個人認為已經是一個相當優秀的框架了,路由定義簡單,配置簡單,文檔豐富,社區也相當活躍
生產效率:5星
學習難度:1星
性能:4星
社區活躍:4星
3、Yii2,Yii2的路由分發跟TP5稍微有點不一樣,也使用了反射的功能,自動載入現在都使用的composer,大體上都差不多,都有延時載入,Yii2的路由相對智能一些,不用去手動維護,類似於TP3所以使用起來也是很方便,性能比TP5應該略差點,沒測試過,從源碼來看
生產效率:5星
學習難度:2星
性能:3.5星
社區活躍:4星(很多強大的組件,你只要下載就行了,會省很多事)
4、CakePHP,這個框架內部的封裝性看上去沒上面那幾個優美,但是它自己實現了use關鍵字功能,所以兼容性來看應該是比上面那幾個好點的,但這在新項目上應該不是問題,新項目上PHP7,啥都別想,准沒錯。它的路由定義類似於TP5但是稍微多點功能,不過其實是個雞肋。中文文檔就不說了,很不好找。不過也算是個相對簡單的框架嚴格遵循MVC
生產效率:3星
學習難度:3星
性能:4星
社區活躍:2星
5、Workman,這個框架相當強大,如果你要實現一些復雜的協議或者用php做一些websocket推送或者TCP/UDP伺服器的話,這個框架可能可以滿足你的需求,也有一些非同步的組件,比較高級的框架,初中級程序員可能用不上
生產效率:3星
學習難度:4星
性能:3星
社區活躍:2星
6、swool,這是個相當有意思的框架,性能很強大,旁友,你聽說過非同步編程的nodejs,python的tornado框架嗎,這個在php里做的就是一個這樣的事情,國內的一位老兄開發的C擴展,用php來非同步編程,看了下文檔,稍微做了個性能測試,相當優秀,就是不知道在項目中重度使用會不會踩到什麼坑,而且這也是一個相當高級的框架。大部分人可能直接轉node了吧,畢竟node生態環境已經相當好了,總之,如果你想用php試試非同步編程來提高性能,非這個框架莫屬。性能獨一檔,編程難度也相對高一些,你需要有些進程的理論基礎
生產效率:3星
學習難度:4星
性能:6星
社區活躍:2星
7、Yaf,鳥哥寫的c擴展框架,然而你要自己實現很多輪子,生態環境是個大問題。
生產效率:4星
學習難度:4星
性能:5.5星
社區活躍:2星
其它框架還沒怎麼了解,國內的話,根據具體業務,選上面幾個,沒錯。
H. 什麼是MVC以及PHP怎樣實現MVC
其實你的問題一開始就問錯了,即然你問了,我就隨便說說好了。
MVC 是一種設計風格,並不是一種具體手法。每個人寫代碼都有自己習慣的一種設計風格。MVC 是應用程序開發常用的一種風格,實際上並不適合 PHP,因為 PHP 的工作環境註定了它很難做出像樣的控制器,也就是 Controll 。
MVC 本來的設計風格是:整個系統由一個程序啟動,再根據用戶操作調用各個處理模塊,根據數據結果來決定顯示成什麼樣給用戶看。就像我們平時用的各種程序的主界面。這樣程序員創建好主程序以後,只要把注意力集中在開發各個子功能上就可以了。。
可是 php 大多數情況下工作於 web 環境,有「頁」的概念,每次執行都是一個新的請求。這就註定了很難實現真正的 MVC,因為用戶看到頁面時,PHP 已經執行完了,不可能再切換去調另一個 模型M 和 視圖V 。
目前自稱 MVC 的各種框架。也只不過是用一個程序判斷請求,載入不同的功能塊。只能稱之為「單點入口」,在思路上是「請求相同的部份,而包含不同的部份」。這個入口程序實際上啥也沒做,所以算不上是 MVC。反而 JS 開發的富客戶端更接近一些。由一個 JS 主程序,跟據用戶請求決定調用哪些數據,再把界面改變成什麼樣。
設計風格是前人總結出來的東西,在當前語言,當然環境,當前思維方式下。比較容易繼續思考的一種設計方式。MVC 只不過是其中一種,而且並不是最適合 PHP 的一種。偏偏被炒作得好像標准似的。。
如果你一定要, 就去看一下 「PHP 單點入口實現」吧,已經是比較接近的東西了。如果一次性的控制器也能算控制器的話……