對純面向對象的PHP程序有何看法?

大家知道的純面向對象的PHP程序的哪些?對於純面向對象的PHP程序在架構、開發、性能等方面有什麼見解?


OOP的目的不是為了提高運行效率,而是開發效率~對於PHP而言,因為使用OOP而損失的性能與它帶來的開發和維護的好處相比我以為是微不足道的~


從我僅有一點經驗看來,純面向對象的PHP應用需要更多的工作來提高運行效率,好處是更有利於模塊化和代碼重用。但總是覺得PHP不是為OOP而生的


PHP里哪來的純面向對象?除非有人閑得蛋疼把PHP中所有過程式庫函數的調用全部封裝成類,比如字元串操作系列函數,數組操作系列函數,等等,數量差不多在1600個左右吧.

http://php.net/manual/zh/funcref.php
http://php.net/manual/zh/indexes.functions.php
&

沒有OOP的Linux和C不也照樣活得好好的,而且還是最知名的大型開源軟體.當然,如果OOP粉不爽,可以考慮用OOP重寫Linux內核和C運行庫相關的幾千個系統調用和函數呀.

http://man7.org/linux/man-pages/man1/man.1.html
下表顯示了手冊的 章節 號及其包含的手冊頁類型。
1 可執行程序或 shell 命令
2 系統調用(內核提供的函數)
3 庫調用(程序庫中的函數)
4 特殊文件(通常位於 /dev)
5 文件格式和規範,如 /etc/passwd
6 遊戲
7 雜項(包括宏包和規範,如 man(7), groff(7))
8 系統管理命令(通常只針對 root 用戶)
9 內核常式 [非標準]

比方說 open 這個內核提供的函數位置就在:
http://www.man7.org/linux/man-pages/man2/open.2.html

所以說,那些說大型項目必須要用OOP完全面向對象編程來實現的都是瞎扯淡.現在很多語言都是多範式,過程式+函數式+面向對象等等,沒有哪個是萬金油.像PHP里匿名函數就是函數式的一種體現,難道為了所謂的OOP,連回調函數用匿名函數這種便捷的寫法也要拋棄么?連Java這種OOP萬物皆對象的神教,都不得不在Java8中引入匿名函數的支持,我聽見打臉的聲音.


我感覺oop主要還是維護起來方便,團隊協同開發效率會很高,對項目規模的把控也容易的多。php要發展必然走oop的路子,現在的php框架不都是oop嗎?

說到運行效率的話,真到了由於oop而帶來運行效率的時候,oop其實已經不是問題了。

如果感覺php不適合oop那是不是說php只適合做小型項目呢?phper們不要自貶身價啊。


都啥年代了,這問題老土,答案更是不忍直視,說PHP不是為面向對象設計的人還活在十年前么。命名空間,繼承,trait,反射,composer 包管理器這些不都是PHP社區對面向對象的肯定么,現代框架也全面採用了各種設計模式,PHP7的新的數據類型也是以標準類庫形式使用(執行效率比array快)。PHP是個過早走紅的童星,現在他已經在念大學了,別總用老眼光看他了。


面向對象思想本來就與語言沒有關係,更何況php5改進了OO方面的語法,所以現在在語言方面沒有太大的障礙。之所以OO沒有普及,還是因為整個php社區的思想沒有跟上。現在很多人還是覺得php是為中小型網站專門設計的,不願意開發框架,學習框架。這也是早期php設計思想留下來的不好的影響。事實上,php要想有更大的作為,更廣闊的空間,走面向對象的道路是必然的選擇


偏見!你怎麼不看待下純面向對象的JAVA?


現在都流行混合了,這幾年的新語言基本都可以腳本式執行,面向過程,面向對象,函數式,納入各種好東西。

像Java那樣非常嚴格的面向對象實際使用中也是挺蛋疼的。


單入口的架構形式在達到一定規模後性能問題會越發顯著


php5後對象的運行效率已經不錯了,OOP特性的大量使用也使得PHP更像一門語言。


php 出來就不是為 oop 設計的, 以至於後來加入的 oop 特性變的十分怪異, php 最大的優勢就是隨意。 太講究了就不適合了


主要用來做模塊化吧,PHP 如果利用純 OOP 思想會顯得彆扭。


在談面向對象的時候,我們首先要拋開程序。面向對象是一種思想,而不是一門語言。例如一個需求來了,我們如何去理解自己的需求,如何把需求變成自己的想法,寫出概要設計,畫出E-R圖,建立資料庫,將需求變成程序。萬物皆對象,是告訴我們任何東西我都要用對象的方式去分析事物。比方說喝水這麼一個動作,我們用面向對象的方法來分析的話:流程是首先要拿起開水瓶——打開瓶蓋——倒入杯子——關閉瓶蓋——放下開水瓶——喝水。在這個流程出現的某些東西我們就可以對象化:開水瓶,杯子,人。

當然如果你還要仔細劃分的話:可以加上water,瓶蓋。經過這麼一分析,你是不是立馬覺得你的思維就開括了,接下來的神馬文檔和資料庫設計都是浮雲?至於用什麼語言去實現那只是一種手段。熟話說:程序是死的,但是我們程序員能賦予它生命和活力。


推薦閱讀:

屬於現在這個技術時代的phper進擊路線圖?
國內C源碼PHP框架選擇與評價 Yaf Yar Swoole workerman?
如何滿足PHP源代碼加密和混淆的需求?
如何看待 swoole 作者最近修改開源協議?
Magento從架構上來說,主流的評價如何?

TAG:PHP | 面向對象編程 | PHP開發 | PHP架構 |