日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一般我們會選擇一個框架來完成我們要做的開發任務,而不是從0開始,避免重復造輪子。框架抽象了許多常用的底層邏輯,封裝了許多通用又簡便的方法,讓我們快速高效地完成任務。

框架都有什么類型

其實我們并不是必須要使用框架,有時候使用原生php會更好,但如果你需要一個框架,那么從設計規模上有這樣幾個類型:

  • 微型框架
  • 全棧框架
  • 組件框架
  • 工具框架

從運行方式上,又可以分為這樣幾個框架:

  • 面向Web的PHP-FPM框架
  • 面向Web的PHP-CLI框架
  • 面向其他場景的PHP-CLI框架

你可能會納悶,怎么沒有“面向其他場景的PHP-FPM框架呢?”,哈哈,PHP-FPM就是專門用來處理Web的一個PHP解決方案,他本來就是面向Web的,也只能面向Web。這也就是有一部分人宣揚的“PHP只能做Web”的論調,其實是“PHP-FPM只能做Web”,PHP本身還是非常靈活和強大的。

什么是微型框架呢?一般微型框架只會處理系統的入口部分。比如如今我們在Web開發中經常接觸到的一個概念“路由”,這樣的微型框架會把HTTP請求轉發到一個閉包、控制器或方法中,盡可能的加快開發速度,如果有一天我們的URL要發生變化了,只要調整路由即可,不需要調整主要業務的代碼位置。再比如一個面向命令行的框架,處理好了常見的命令操作和參數,讓我們只要把核心邏輯寫好就可以了。

什么是全棧框架呢?這是相對于微型框架而言的,許多框架會在微星框架的基礎上加入許多功能,以試圖解決各個方面的問題,比如狀態存儲、數據庫、緩存、驗證等等,這時我們就稱它為全棧框架。一個標志性的特點是,這些框架通常會內置一個ORM。當然也不是所有的全棧框架都會內置ORM,可能會引用第三方的庫。但是他們都有一個共同的目標,就是讓自身的規范標準盡可能滿足所有場景。

什么是組件框架呢?組件框架是有多個獨立的庫結合起來的,但這類框架仍然會提供一個代碼的組織規范(代碼目錄的存放標準等)。一般這些框架的組件,還可以和其他框架一起使用。

什么是工具框架呢? 這是小編自己總結的一個概念,這類框架是為了解決某一個場景的、完整度很高、但并不能直接使用的框架,只是完成了這一場景中需要的更多的工具。比如一個通用后臺管理框架、內容管理框架、爬蟲框架等,小編也會在后面介紹一些這樣的項目。這類框架通常只能用來開發某一個專門的場景。

至于運行方式的這幾個分類,其實很好理解,一般現代的用來在PHP-FPM中運行的框架,也有辦法從PHP-CLI中運行,比如ThinkPHP提供了基于Swoole和Workerman的運行方式。也有一些專門在PHP-CLI中運行的面向Web的框架,這些框架既有微型的,也有全棧的,后面我們會介紹的。

除了Web還能有什么場景呢?其實PHP-CLI能夠處理的場景很多,比如長鏈接(物聯網、聊天),多進程(爬蟲、采集、處理任務)、系統操作(數據遷移、系統監控)等等,后面會介紹到一兩個PHP-CLI的框架。

有哪些框架

PHP有哪些框架?

 

ThinkPHP,這是國內的很流行的一個開發框架,在國內的生態非常強大,許多后臺管理框架都是給予它做的。

ThinkPHP算是一個全棧框架,但這并不代表它非常笨重,ThinkPHP是簡潔實用的、注重性能的輕量級框架。小編一直很鐘愛ThinkPHP,但是他也面臨所有國產開源項目的問題,貢獻者太少,“伸手黨”太多。或許等國內的商業和技術環境更好的時候,或者準備面向英文生態的時候,ThinkPHP的開源運作會提升一個層次。

ThinkPHP,既可以在PHP-FPM中運行,也內置了基于PHP-CLI的運行方式,通過使用Swoole或Workerman的方式。

PHP有哪些框架?

 

Laravel,這是目前最熱門最流行的框架,似乎除了不好拼寫以外,沒什么大的問題。

從開源運作上講,處于非常高的層次(相對國內的開源項目來說),穩定的更新周期和技術支持,強大的社區生態,先進的編程思想,都是選擇它的理由。Laravel是一個全棧框架,但同時也是一個重量級的框架,很多人詬病它的性能,但其實小編認為這并不是什么大的問題,PHP的運行有PHP的優化方案,重量級框架的問題在于大量的文件加載,通過PHP緩存或者其他的運行方式(從PHP-CLI加載運行),性能問題并不是接受不了的。

Laravel,既可以在PHP-FPM中運行,也有在PHP-CLI的解決方案,實際上運行Laravel的方式太多了,很多PHP-CLI的框架都會提供運行Laravel的方案和例子。

PHP有哪些框架?

 

Yii,這是國內生態中經典的強大的框架。

Yii是一個全棧框架,實際上他算是“真·全棧框架”,他在處理Web和CLI中都有豐富的工具。

上面介紹的是幾個國內比較熱門的全棧框架,實際上全棧框架還有很多,這里不再一一列舉,以后有的是機會。

PHP有哪些框架?

 

Lumen,是基于Laravel的一個性能極快的微型框架。

相對Laravel而言,他更精簡,但同時可以通過擴展的方式,獲得Laravel的所有功能。

它是一個運行在PHP-FPM環境中的微型框架,但作為一個現代框架,也有很多PHP-CLI的運行方式。

PHP有哪些框架?

 

webman,一個基于Workerman的微型框架。

webman僅提供了最核心的功能,比如路由、Session、中間件等,如果你需要更多的工具,通過組件加載即可。他是基于Workerman開發的,這意味著他只能運行在PHP-CLI環境中。但這并不是什么缺點,實際上,它Workerman的所有功能,比如自定義進程、進程守護、長鏈接服務器等。后面會介紹到Workerman。如果你希望找一個精悍簡單的框架,webman非常合適。

PHP有哪些框架?

 

EasySwoole,一個基于Swoole的全棧框架。

EasySwoole是基于Swoole開發的一個面向Web的框架,但是就像上面提到的webman一樣,它基于swoole,意味著所有那些swoole的特性它都有。并且提供了大量的工具組件,這些工具組件中有很多提供了協程支持。它不僅提供了大量的工具,還提供了豐富的文檔,或許你會愛上他。

PHP有哪些框架?

 

imi,一個全棧框架,同時兼容多個運行環境(PHP-FPM、Swoole、Workerman、RoadRunner)。

imi是一個基于Swoole的框架,但新的版本并不完全依賴Swoole,就像上面講的一樣,同時兼容多個運行環境。作為一個全棧框架,他也提供了大量的工具組件,其中包括許多協程的工具。同時具備了Swoole的那些能力。目前框架也是十分活躍。

上面介紹了幾個PHP-CLI的框架,這樣的框架還有很多,以后有機會還會介紹。在介紹這幾個項目時,你會時不時的看到Workerman、Swoole等字眼,是的下面就簡單(真的很簡單)介紹一下這兩個框架。

PHP有哪些框架?

 

Workerman,一個開源的高性能PHP容器。

它是一個PHP-CLI的框架,是一個PHP的容器,簡單地說,他可以替代PHP-FPM運行PHP代碼。Workerman在最近的性能測評中非常優秀,文檔和生態也非常好。不論是不是有興趣,都應該學習接觸一下。這里不做太多介紹了,它的文檔非常的友好,自己去體驗快樂吧。

PHP有哪些框架?

 

Swoole,一個PHP協程框架。

它是一個PHP-CLI的框架,是一個PHP的容器,簡單地說,他可以替代PHP-FPM運行PHP代碼。Swoole使用C擴展開發的,并且在國內也有很大的影響力。Swoole本身相對來說“比較底層”,衍生了一大批的框架。這里也不做太多介紹了,自己去探索吧。

PHP有哪些框架?

 

ReactPHP,一個PHP事件驅動的底層庫。

它是一個PHP-CLI的框架,是一個PHP的容器,簡單地說,他可以替代PHP-FPM運行PHP代碼。這個庫在國外是非常流行的,之前小編介紹過一個純PHP開發的redis服務器,就是用它開發的。他在國內不太普及,但是也是一個很強大的項目,比如國外有一個PHP-PM,就是用它開發的,用來運行laravel等框架,來提高運行速度。

Minicli,一個微型的PHP-CLI框架。

Minicli是一個PHP的命令行的極簡的框架,提供了一個簡單地命令行操作,并且提供了規范的代碼加載,沒有更多內置功能。

CLIFramework,一個PHP-CLI的全棧框架。

與上面介紹的Minicli不同,它提供的是一套大而全的命令行應用框架:

  • 能夠實現各種類型的參數格式(長選項、短選項、必填、可選、默認值)
  • 分層命令
  • 命令參數自動提示

等等。如果你需要一個健全的命令行框架,那么可以選擇它。

關于工具類框架

其實小編說的工具類框架,就是解決特定場景的項目,比如后臺管理框架、內容管理框架,這里就不一一列舉了,遍地都是,回頭或許會做個專題來介紹整理一下。

但是這里要介紹一個有趣的工具類框架,爬蟲框架

 

Beanbun,是一個簡單地可擴展的爬蟲框架,支持分布式、守護進程,使用Guzzle來做HTTP客戶端。

他是基于Workerman的,專門用來做爬蟲的項目。它有以下特點:

  • 支持守護進程與普通兩種模式(守護進程模式只支持 linux 服務器)
  • 默認使用 Guzzle 進行爬取
  • 支持分布式
  • 支持內存、Redis 等多種隊列方式
  • 支持自定義URI過濾
  • 支持廣度優先和深度優先兩種爬取方式
  • 遵循 PSR-4 標準
  • 爬取網頁分為多步,每步均支持自定義動作(如添加代理、修改 user-agent 等)
  • 靈活的擴展機制,可方便地為框架制作插件:自定義隊列、自定義爬取方式...

Beanbun相對來說比較精簡,但是也提供了很多組件解決方案,這些你都可以在它的文檔中找到。

最后

以上就是本文對框架的簡單介紹,除了本文提到的這些外,還有許許多多的優秀的框架,這里沒提到并不是說他們不好,而是小編還沒有這樣的能力去了解清楚。以后有機會再介紹。

分享到:
標簽:PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定