PHP框架,英文爲Framework,關於其定義,這裏給出了一些解釋。
這些定義各有千秋,但是太抽象,在我看來,框架就是指僅含基本結構的PHP網站。數據庫
雖然這個定義不太嚴謹,但仍舊是足夠準確的,很是直觀清晰具體。segmentfault
泛泛而談等於不談,就這麼說一個定義,理解起來還有些茫然。
要說清它是什麼,弄明白它是如何產生的就好了。框架
接下來就模擬一次框架的誕生過程,就樣咱們就能理解框架究竟是什麼啦!工具
框架是用來作網站的,因此咱們就從作網站入手。
首先要有一個HTML頁面。
網站
咱們須要作的是一個網站,一個頁面不夠用,至少要有五個:spa
首頁圖片
列表頁開發
內容頁get
關於頁源碼
聯繫方式頁
這五個頁面有一些內容是同樣的,好比說頁面頭部(header),足部(footer)。
咱們就把這些內容抽出來,這樣就有了可複用的頁面。
這就是PHP靜態網站。
咱們要將如今這五個頁面拓展成博客網站,實現如下功能:
能夠自由地添加文章
文章存在數據庫中
能夠對文章進行分類管理
內容管理系統(CMS)不一樣於簡單地複用PHP頁面,它有較複雜的結構:
列表頁、內容頁是可複用的,就將其變成模板文件
增長一個管理頁面,能讀取咱們的輸入,再替換模板文件,生成最後的頁面
增長對數據庫的增刪改查功能
網站的結構變成了三層MVC,這就是內容管理器(CMS)。
如今咱們不光想作博客網站,還想作購物網站,工具類網站。對於這些網站,本質上仍屬於內容管理,都能用內容管理系統(CMS)來實現。
咱們要實現新的需求,能夠有如下兩種作法:
根據需求從頭至尾從新寫一個內容管理系統(CMS)
使用已有的內容管理系統(CMS)作定製開發
第一種作法:若是本身寫一個內容管理系統(CMS),一切從頭開始,費時費力;
第二種作法:使用現成的內容管理系統(CMS)來進行定製開發,還須要瞭解這個CMS的源碼,一樣很麻煩。
可否有一種簡化的內容管理系統(CMS),去掉全部的模板,界面內容,僅保留對於數據庫的交互,和自動生成頁等易於拓展的基礎功能?
這個簡化的CMS就是原來CMS的基類合集,框架的概念就誕生了。
它是僅僅保留了MVC結構的CMS,相比CMS,開發的靈活性更大,同時又能夠節省開發時間。
以上就是不夠嚴謹的框架說明。
既然不嚴謹,爲何還要列出來呢?
由於框架的抽象不一樣於其餘抽象概念,它並不是某我的或機構提出來的有標準的東西,而是隨着互聯網發展,被不斷出現的新框架不斷地被更新出來的。
因此對於像框架這種沒有標準的概念,只能是不斷地經過不嚴謹的說法來進行修正。