MVC(Model View Controller),是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。主要目的提高了軟件可維護性、可復用性,也因為把 模型-視頻-控制器,進行抽象分離開發,有助于管理復雜的應用程序,因為您可以在一個時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注于視圖設計。同時也讓應用程序的測試更加容易。
我們以web前端為例,來解釋一下 M-V-C 三者之間的關系,當用戶打開一個網站后
到這里大家還是會感覺到比較抽象,沒有實際的感覺,下面我們用后端一個框架(php 中的 thinkPHP)前端中的 vue 來理解這三者之間的關系
沒有前端工程師的年代
在很多年前,當時 js 剛起步,由于性能問題,前后端分離還沒開始等因素,但是網站開發僅僅是后端一個人的事,他們不寫接口,而是使用數據塞入html方式進行開發。
最早以 php 為例,是 php + html + css 開發模式,但是也同樣遇到 php 和 html 混編,導致代碼可以維護性、復用性、開發的專注性、協作性,都非常低,為了改變這種現狀,出現了很多解決方案,而 thinkPHP 提供了 MVC 開發模式的解決方案,大大的改變了那種垃圾代碼的現狀,讓開發者感受到了爽的感覺。
thinkPHP 中的 MVC
在 thinkPHP 中
可以看出和 MVC 概念里面不同的是,Model 沒有直接通知 View 改變的能力,全部需要經過 Controller 進行處理加工,然后放入到 View 進行渲染(也就是另一種開發模式 MVP)
前端工程師崛起
后來因為互聯網的發展,業務開發的業務復雜度日益增長,用戶對于也沒的體驗要求越來越高(體驗式經濟)純服務端渲染的形態體驗肯定不可能非常好,也由于 js 的快速發展(得益于 Google 的 v8 引擎)使得前端工程師崛起了。
js 的崛起使得,用戶對 web 交互操作的時候,可以立馬可以得到相應,且可以做動畫,而不是傻不拉幾的開始請求新的頁面,在哪等待瀏覽器的加載、
而后為了使得前端開發更便捷,dom操作更方便,也出現了 jq 為代表的很多框架,但是依然沒有從軟件設計模式上去解決 好維護、好協同、更專注的問題,這個階段主要是對于常用的操作進行封裝階段。
這個階段在前端抽象層來說,Model View Controller 三者相當耦合。
而后出現了 angular 改變了這種格局,angular 的 MVC 的抽象
angular的出現簡直算是跨時代的產物,從此前端 jq 獨大的局面開始變化。angular 中除了使用了 MVC 開發模式外,還引入很多比較好的概念,比如:依賴注入、雙向數據綁定等,具體這邊不做說明,今天的主題不是說這個。
angular 雖然使用了 MVC ,但是對于很多東西的定義的不夠清晰,比如 Model,比如 Controller 中存在數據的緩存 + 業務邏輯的處理,這時候我們中國的開發者就有重新定義了一下 MVC,也就是現在中國很流行的 vue
vue 中 的實際上有兩個 MVC,第一個 MVC,是相對于后端的,第二個MVC是前端內部的數據和視圖直接的MVC關系
首先我們來說第一個,相對于后端的MVC
第二個,純前端內部的 MVC 抽象嗎,后來稱作 MVVM
到這里基本就把東西介紹完啦,感謝大家讀完,我沒有多寫細節上的介紹,也沒有對框架的作者背景,為啥會開發這個框架等方面進行介紹,只是簡單的發展歷程稍微介紹,更多的是讓大家理解 MVC MVP MVVM 和框架之間的關系,并且知道他們的抽象層,分別負責什么。
如何讓一群程序員爭論不休?”我想只需要說出那句名言:“PHP是世界上最好的語言”。包括現在,也是同樣會熱鬧起來[淚奔]。
作為曾經我的入門語言,其實,對我而言,感情很深,或者說是感受很深。
近些年,由于一些原因,其實在上一篇文章中已經提到的一些原因吧,導致PHP的使用率確實在降低,包括身邊的同事所在的公司,也可以看出來。
比如我曾經待過的某大廠養老院,2000年初至2016年左右的很多項目都是用PHP做的,但是在2019年開始,新項目基本都用Golang了,很多舊項目,代碼已經成了“屎山”,也是用Golang來重構的。
不管如何轉換,不管如何跟風或者替代,我始終覺得,只有合適的場景與需求,沒有垃圾的語言,每一種語言都有其獨特的地方,合適的場景,合適的業務,選擇合適的語言去做,這是最重要的。
[比心]接下來,還是想回顧一下世界上最好的語言PHP的前世今生、PHP的特性與特色。
PHP是一種流行的服務器端腳本語言,主要用于開發Web應用程序。它的名字是"PHP: Hypertext Preprocessor"的遞歸縮寫,強調了它的主要用途:處理Web頁面的超文本預處理。
[比心]PHP的主要特點包括:
易學易用:PHP易于學習,尤其適合初學者。語法簡單明了,最初輝煌的時候,是與HTML混編,不需要復雜的編譯過程。
跨平臺性:PHP在多種操作系統上運行,包括Windows、Linux、macOS等,使得開發者可以在不同環境中工作。
廣泛的數據庫支持:PHP支持多種數據庫系統,包括MySQL、PostgreSQL、Oracle等,方便與數據庫交互。
強大的Web開發能力:PHP能夠處理表單數據、生成動態網頁內容、管理會話、處理文件上傳等,使其成為構建交互性網站的強大工具。
開源和免費:PHP是開源的,免費使用,有大量的社區支持和資源可供開發者使用。
巨大的社區和庫:PHP擁有龐大的社區,有豐富的擴展和庫,可用于加速開發過程,同時PHP擁有強大、豐富的函數庫,可以高效的開發。
面向對象編程:PHP支持面向對象編程,開發者可以使用類和對象來構建更模塊化、可維護的代碼。
安全性:雖然PHP在過去因安全問題而受到一些批評,但現在的版本更加注重安全性,提供了各種安全功能和最佳實踐。
[比心]使用PHP的典型應用場景包括:
網站開發:PHP廣泛用于構建博客、電子商務網站、社交媒體平臺等各種類型的網站。
Web應用程序:開發各種Web應用,包括在線表單處理、內容管理系統(如WordPress)、電子郵件系統等。
API開發:創建RESTful API,用于移動應用程序或其他Web服務的后端。
命令行腳本:PHP也可用于編寫命令行腳本,用于自動化任務、數據處理等。
總之,PHP是一種功能強大、靈活且易于學習的服務器端腳本語言,適用于各種Web開發項目。不過,需要注意合理的安全性措施以保護應用程序免受潛在的攻擊。
喜歡的朋友點贊關注一下吧[來看我][來看我]
#程序員經驗分享# #it那些事兒# #php最好的語言#
能要求
使用不同的標記方式第PHP代碼進行標識。
實例代碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>php中常用的標記</title>
</head>
<body>
<?php echo "使用標準標記格式"; ?>
<br />
<? echo "使用短標記格式";?>
</body>
</html>
運行結果
知識說明
PHP是嵌入式腳本語言,在實際開發中經常會與HTML內容混編在一起,為了區別HTML和PHP代碼,需要使用標記對PHP代碼進行標識。
<?php echo "使用標準標記格式"; ?>:是一段嵌入在HTML中的PHP代碼。其中“<?php”和“?>”是PHP標記中的一種,專門用來包含PHP代碼,echo用于輸出一個或多個字符串。在結束標記前的最后一條語句的分號“;”可以省略。這是一種標準標記方式,是最常用的標記類型,服務器不能禁用這種風格的標記。PHP推薦使用這種方式。
<? echo "使用短標記格式";?>:短標記格式以“<?”開始,以“?>”結束。在使用時,需要將php.ini中的short_open_tag選項設置為On,開啟短標記功能后才能使用。
注意:如果腳本中包含XML語句,應避免使用短標記“<? ?>”,要選擇標準的標記“<?php ?>”。因為“<?”是XML解析器的一個處理指令,如果腳本中包含XML語句并且使用短標記格式,PHP解析器可能會混淆XML處理指令和PHP開始標記。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。