本文目錄一覽:
- 1、phalcon在php7出後,那點性能優勢還有優勢嗎
- 2、Php7有哪些新特性
- 3、怎樣選擇適合自己 PHP 框架
- 4、php7.0下比較好的框架,都有哪些框架支持php7.0
- 5、PHP的哪個MVC框架最值得推薦
phalcon在php7出後,那點性能優勢還有優勢嗎
Phalcon是一款PHP的框架,全棧的框架,這個PHP7還是PHP5都沒動這個奶酪。框架封裝了「開箱即用」很多功能。不管php升級什麼功能很多場景下還是需要框架的。
PHP好比一個房子,Phalcon好比房子里裝修,房子本身為裝修提供支撐,裝修為住戶提供「開箱即用」的功能便利。好了,房子升級了,支持裝修可以實現更多「開箱即用」的功能。
如果有一天,PHP真的提供「精裝房」,在來比較phalcon是否優勢尚在吧。。
PHP7比5也就提升100%的性能,了不得了。
Phalcon比其他的非C擴展框架性能優15-20倍。
Php7有哪些新特性
PHP 7.4 的主要特性包括以下幾個,
短閉包函數(short closure) 預加載提交性能 屬性類型限定 Improved type variance(不會翻譯) 三元運算簡寫 數組展開運算 新增類的魔術方法:serialization 數字分隔符 運算優先順序 允許在__toString中拋出異常 支持反射引用 新增位元組分割函數 移除php短標籤 棄用左關聯運算符 不再向後兼容的變更 短閉包函數
短閉包函數可以減少冗餘代碼:
array_map(function (User $user) { return $user-id; }, $users) array_map(fn(User $user) = $user-id, $users)
需要注意幾點:
短閉包可以直接訪問閉包函數外面的變量,所以不需要再寫?use?關鍵詞 以fn關鍵詞開始 $this?可以像普通的閉包一樣使用 短閉包只有一行代碼,僅僅做返回聲明使用,不允許使用return?關鍵詞
還可以使用更嚴格類型的方式
$ids = array_map(fn(User $user): int = $user-id, $user); 預加載
PHP預加載可以極大的提高性能
優點:在PHP 7.4以前,如果你使用了框架來開發,每次請求文件就必須加載和重新編譯。預加載在框架啟動時在內存中加載文件,而且在後續請求中永久有效。
缺點:性能的提升會在其他方面花費很大的代價,每次預加載的文件發生改變時,框架需要重新啟動。
屬性類型限定 class A { public string $name; public Foo $foo; }
不得不說,PHP越來越接近Java等強類型語言
Improved type variance
協變返回類型:
class ParentType {} class ChildType extends ParentType {} class A { public function covariantReturnTypes(): ParentType { /* … */ } } class B extends A { public function covariantReturnTypes(): ChildType { /* … */ } }
依賴(是不是很熟悉):
class ParentType {} class ChildType extends ParentType {} class A { public function covariantReturnTypes(): ParentType { /* … */ } } class B extends A { public function covariantReturnTypes(): ChildType { /* … */ } } 簡寫三元運算符
在目前 PHP 7以後的寫法:
$data[‘date’] = $data[‘date’] ?? new DateTime(); 在PHP 7.4你可以這樣寫: $data[‘date’] ??= new DateTime(); 數組展開運算
合併數組到另一個數組中,返回一維數組
$arrayA = [1, 2, 3]; $arrayB = [4, 5]; $result = [0, …$arrayA, …$arrayB, 6 ,7]; // [0, 1, 2, 3, 4, 5, 6, 7]
注意? :只對數字索引有效
新增類的魔術方法
RFC添加了兩個新的魔術方法__serialize和__unserialize
數字分隔符
允許使用下劃線更直觀的分隔數值
$unformattedNumber = 107925284.88; $formattedNumber = 107_925_284.88; 運算優先順序
PHP 7.4之前,如果你這樣寫:
echo “sum: ” . $a + $b; PHP會解析為: echo (“sum: ” . $a) + $b; PHP 8將會解析為: echo “sum :” . ($a + $b); __toString中拋出異常支持反射引用
PHP 7.4將會新增ReflectionReference?類
移除php短標籤
?將會在PHP 8中移除,?=會繼續保留
棄用左關聯運算符
PHP遺留了一些奇怪的怪癖,比如
1 ? 2 : 3 ? 4 : 5; // 將會在 PHP 7.4 中廢棄,在 PHP 8中會拋出編譯錯誤 (1 ? 2 : 3) ? 4 : 5; // 正確 不再向後兼容的變更 棄用在沒有父類的情況下調用parent:: 調用var_dump打印DateTime和DateTimeImmutableshi』實例,將不再保留對象上的可訪問屬性 openssl_random_pseudo_bytes?會在調用錯誤時拋出異常 序列化PDO和PDOStatement?實例將會生成一個Exception而不是PDOException異常 調用get_object_vars()打印ArrayObject?實例將會返回ArrayObject?自己的屬性,而不是被包裹的數組或對象的值,
數組強制轉換不受影響
怎樣選擇適合自己 PHP 框架
PHP是世界上最流行的編程語言之一,並且最近PHP7的發佈讓這門服務器端的編程語言比以往更加的強大和穩定。
PHP廣泛應用於大型項目,例如Facebook使用PHP來建立和維護他們的內部系統。Wordpress使用PHP作為它的內核使其佔據了26%的web項目。目前82%的web網站使用PHP作為其服務器端的開發語言(據Web
Tecnology Surveys網站調查)
在這篇文章內,我們將一起來分析3中最流行的PHP框架:Symfony、Laravel、和Yii。我門通過說明怎麼比較它們來幫助大家選擇一個最適合自己需求的框架。
php7.0下比較好的框架,都有哪些框架支持php7.0
框架很多,官方的也很多,但外國的國文幫助很少,就只能用國產的了,7.0應該都支持,向上兼容應該沒問題,現在php5.4左右的最流行
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星
其它框架還沒怎麼了解,國內的話,根據具體業務,選上面幾個,沒錯。
原創文章,作者:0YRT4,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/128123.html