標籤:

為什麼不選用Yaf框架?

php有C擴展型的框架 譬如Yaf

但是有很多全新的項目也不會選用

求解釋不選用的原因


這麼講吧,鳥哥呆過的幾家公司基本都在用yaf,我離開渣浪的那一年,微博已經開始著手替換框架了,現在應該換完了,我在想多大的場景比微博還大,但目前的現象就是,國內用yaf的基本都是BAT,很多人沒聽過yaf甚至不知道鳥哥,也有很多人報以遲疑態度,我也嘗試過推廣yaf但是效果並不明顯,想想一個工作十年的老程序員都不知道yaf是啥,怎麼用,擔心這那的。

還有,框架本身是用來優化工作效率的,所以包容的東西很多,講真我用過的框架很多特性都沒有使用過,也有很多人喜歡對官方框架大刀闊斧的修改,為的也是讓它跟符合當前的業務場景,其實我也提倡使用簡單的框架,造符合業務的輪子,未必是件壞事。

最後,好於不好,用過了就知道了,技術的本身是靠實踐得來的,不應該從言語上剝奪了別人探索的權利,先了解清楚,最終結果是怎樣就知道了


為什麼不用?因為小公司沒有新浪微博和百度貼吧這種大規模的PHP服務呀.

你想想呀,有些小公司可能連VPS都不捨得買,還在用虛擬主機,

而虛擬主機不支持載入C擴展,只允許跑PHP代碼,自然也就沒法跑Yaf.

鳥哥用C實現的PHP框架Yaf,最新3.0.6(2017-12-31),支持PHP7.

就算不用,看看大神的思路也是完全可以的,說不定什麼時候就用上了.

http://pecl.php.net/package/yaf
http://cn2.php.net/manual/zh/yaf.tutorials.php (文檔)
http://www.laruence.com/manual/preface.html (文檔)

Yaf是鳥哥在PHP開發組社區的成名作,不要小覷.


難道yaf+composer 不好用么。就問這麼一句!


在前後端分離的今天,使用分離來進行業務解耦,這樣決定了架構的高度,前後端分離的好處很多很多,所以後端需要著重關注到json的生成和crud中,框架並不需要什麼花里胡哨的路由映射、配置,要的是好用、效率、方便即可,so,yaf真的是一個非常輕量化的php框架,而且經過全世界最多的大流量考研,而且是zend成員所出,你們不用不是因為框架不行,而是因為你的高度不夠!還有hhvm、swoole、docker、kubernetes、codis、zookeeper、etcd、postgresql、golang、nodejs、express、martini、injector(依賴注入)、python等等等新技術層出不窮 工程師不與時俱進就要落後的!一個php extension何足掛齒?我們所有php的環境如 lnp(linux centos 7.2+nginx+php7.0+)我們都是用docker image打包的,可以在1分鐘之內部署到新伺服器上,加上我們的自營容器編排速度更加快捷,部署node節點數量更加彈性可控!還在在乎pecl。。。。。。可笑。。。。


適用場景太窄,而且會帶來額外的運維麻煩。

類似yaf,Phalcon 這些 C 擴展的框架,除了帶來性能的提升外,幾乎沒有別的優勢,所以它的場景非常明確,就是犧牲運維和開發舒適度,追求 PHP 極限性能的場景。

1. 它並不是唯一的提升性能的辦法,比起 db 端,web 端水平擴展非常容易,nginx 負載均衡,或者弄個 haproxy,把機器堆起來,基本也就解決問題了。追求單機性能,上 HHVM 難度也並不大。

2. 網站在訪問量變大的過程中,往往最先頂不住的是 db,除非你的需求特殊,或者你的網站已經大到某種程度,你花在 db 端優化的時間絕對超過你花在 web 端的時間。

3. 因為是pecl擴展,運維 部署 開發都帶來了一定的麻煩。不想展開了,稍微想想應該就能明白。

總而言之,除非需求特殊,都不建議項目上 yaf,人生苦短,請用 Laravel。


3. 因為是pecl擴展,運維 部署 開發都帶來了一定的麻煩。不想展開了,稍微想想應該就能明白。

這我太不贊同了,一看就知道明顯沒有用過Phalcon,編譯一個擴展對於運維來說就像吃飯喝水一樣簡單。我只想說,呵呵了


招人成本高…

沒有比較完整的組件工具庫。基本靠第三方,或自己造輪子。


這就好比買房子,有人買毛坯,有人買簡裝,有人買精裝。yaf就是連牆都還沒有的一個框。


太簡陋


主要考慮招人問題,為了招人容易,企業更傾向於使用最流行的框架


那就用Laravel吧。性能也不是問題,完全可以堆機器。

而且Laravel提供了各種業務場景的最優解決方案。

可以說是現在php中最完美的框架了。


為什麼要用它,給我個理由?


其實很多時候就是歷史沉澱而已。

公司創業初期為了簡單、方便,一般都會採用tp之類的框架,因為這時候可能想的更多是功能也不多,不用花那麼大價錢去請大牛,請一兩個差不多就好了。

然後呢?公司迅速發展,很多東西都已成型,這時候基本上也都還是最開始那一套。這時候項目要重構,正好來了個大牛說,我們用yaf,可是最開始那些人還在公司,yaf是啥都不知道。這時候大牛還得去臨時開個培訓班么?一般來說是不可能了,老老實實繼續用tp之類的吧。

除非這個大牛進來負責一個全新的項目,然後開始就自己咬著牙自己寫,然後別人慢慢跟著自己熟悉,才有可能把yaf用上。

還是那句我經常跟我吹水夥伴說的:能完成需求的語言就是最好的語言,能完成需求的框架就是最好的框架。


如果對資料庫的操作非常複雜,最好的用法是用 YAF 框架集成laravel的ORM


Yaf性能絕對杠杠的,但是對於新手來說,難度就很大了。所以小公司很難上Yaf。強烈推薦phalcon


有空我也試一下這個框架。


如果你在乎性能又對框架的豐富特性要求不高,那請選擇yaf, 還能順便學習php擴展的開發。反之, 可以考慮其它你所熟悉推崇的框架或自己定製適合的開發庫。


推薦閱讀:

自己寫一個web應用的話,架構推薦(前端框架和後端php框架)?
yii 2 相比yii 1.1.x 有什麼變化?
PHP框架中thinkPHP和Swoole有什麼區別?
Yii測試沒找到PHPUnit_Extensions_Database_TestCase?(已解決)
如何開發 PHP 擴展?PHP 擴展應該注意些什麼?

TAG:PHP | PHP框架 |