看到2016 版 Laravel 系列入門教程(一)這裡有一段話:
Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 作者在開發第一版的時候花了整整三分之一的時間才搞出來 Eloquent。當然,“欲練此功,必先自宮”,Eloquent 也是 Laravel 中最慢的地方,迄今無法解決。(路由、自動載入、配置分散、視圖引發的效能問題都通過緩衝幾乎徹底解決了)
是否確實如此?用緩衝(比如redis)能夠解決Laravel的效能問題,除了Eloquent ORM?
如果使用DB門面代替Eloquent ORM,是不是就不需要建立Model了?也就是說MVC變成了VC?
回複內容:
看到2016 版 Laravel 系列入門教程(一)這裡有一段話:
Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 作者在開發第一版的時候花了整整三分之一的時間才搞出來 Eloquent。當然,“欲練此功,必先自宮”,Eloquent 也是 Laravel 中最慢的地方,迄今無法解決。(路由、自動載入、配置分散、視圖引發的效能問題都通過緩衝幾乎徹底解決了)
是否確實如此?用緩衝(比如redis)能夠解決Laravel的效能問題,除了Eloquent ORM?
如果使用DB門面代替Eloquent ORM,是不是就不需要建立Model了?也就是說MVC變成了VC?
首先得吐槽,Laravel的很多文檔都喜歡過度擴張,例如上面這段,Eloquent和其他PHP架構中的ORM都是相似的味道,沒有什麼特別牛的地方。另外開發ORM確實花時間不少,主要是因為ORM中邏輯相對其他組件複雜很多,但你不能說花時間多久感天動地吧……
其次,ORM不等於Model,沒有ORM一樣可以做Model,例如我的架構Beaver(https://github.com/funcuter/beaver)中是設計了Model的,但至今沒上ORM(如上面說的,ORM好用,但是效能差,我效能差的東西比較反感)。我設計中是Model直接操作DB,繞過ORM這一層,一樣可以實現正常的操作。
Model更像是自己拆分出去的模組的一個SQL查詢集合,那麼這樣理解來,要不要用M其實是自己的選擇,就像早期的時候SQL語句是直接寫在頁面上的。如果你那麼在乎效能,那麼也可以按照樓上說的直接用DB去執行原生的SQL。
不會提高 Laravel的設計思路註定了就是低效能的代名詞 純粹是為了證明php其實也可以用上設計模式,實際上效能屬於墊底的,效能跟zf一個層級,其實論設計模式,zf更強一些
不為站隊,不為裝逼,只是討論技術問題
https://phphub.org/topics/1396 同樣機器配置不同架構實測資料