2010-05-07 55 views
3

開始時PHP是一種腳本語言。但是在引入和改進OOP之後,我看到越來越多的對象被添加到核心中。他們從DOM(PHP 4和5品種),後來的SPL以及DateTime家族開始,它們應該是PECL,Pear或Zend Framework的一部分,或者由我們每個人實施。是PHP本身轉變成一個框架還是大型圖書館?

PHP不應該只用於內置函數,所有這些對象都傳遞給別的東西嗎?

例如:DateTime class is part of the core我發現它與Zend_Date非常相似。

Wikipedia on standard library

+1

應該是社區wiki – neo 2010-05-07 14:00:13

+0

正確。修改 – 2010-05-07 14:02:25

+4

框架!=大圖書館 – Javier 2010-05-07 14:11:37

回答

3

PHP有總是一直是構建網站的「框架」,因爲它具有處理網頁和會話的特定支持。[向我展示任何嚴重的應用程序,這些應用程序都是用PHP編寫的,並非基本上是一個網站]恕我直言,作爲一種編程語言,它幾乎沒有推薦它,即使在事後添加OO;唯一能夠節省PHP 的是網絡支持(包括龐大的函數庫)以及它是免費的。

作爲一個例子,它作爲一種語言承載自己有多糟糕,PHP的人們遇到了Unicode的問題。關於Unicode的提示在90年代中期已經響亮而清晰,並且每一種現代化的語言都只是堅持在語言中直接支持Unicode。提示:PHP沒有設計;它只是增長。

+0

「向我展示任何嚴重的PHP應用程序編碼,這些應用程序基本上不是一個網站」..我已經在幾個工作。 – troelskn 2011-03-18 09:58:28

+0

@troelskn 1您可能有。統計上你是噪音,而這並不會改變PHP的創始人的意圖。 – 2011-03-18 11:24:00

7

沒有什麼說腳本語言不應該是面向對象的或不應該有對象。 SPL(自PHP 5.3起,始終可用)是一組「旨在解決標準問題的接口和類」。它以更多的OO方式提供核心中尚未存在的有用內容(數據結構,各種各樣的迭代器,一組擴展的異常類型,用於文件的OO-API,改進的類自動加載工具)。

我都贊成一個大型標準庫,我不必調試,併爲我想要做的大部分工作提供功能。如果我想讀取一個XML文件,我不應該去挖掘一個圖書館,因爲這是一件很常見的事情要做。

DateTime系列應該是PECL,梨或Zend框架的一部分或由我們每個人執行的

如果它被很多人使用,爲什麼它不應該在覈心?每個人都在執行不同版本的相同事情沒有意義。

+0

從DOM /安裝/沒有安裝需要使用這些功能(NA也適用於類);他們是PHP核心的一部分。使用--disable-dom可以禁用DOM支持。 – 2010-05-07 14:08:17

+2

事實上,特別是許多重新發明輪子的人往往不會把它弄圓。如果每次看到一個手動推出的日期時間庫沒有適應閏年時我都有一磅,我就不會有錢了,但我肯定能夠買到很多啤酒。 – 2010-05-07 14:15:20

+1

我想大家都錯過了我的觀點。與重新發明輪子相反,只是因爲我們很懶,所以很多垃圾都讓php變得混亂。將phpclasses.org中的所有類都包含進核心可能是一個好主意? – 2010-05-07 14:28:17

1
According to Wikipedia

軟件框架,在計算機編程 ,是 的抽象,其共同的代碼提供通用 功能可以有選擇地覆蓋 或由用戶代碼 提供特定功能[專業.. 。]

這確實描述了Zend Framework和像CakePHP這樣的項目,但沒有描述你看到PHP變得更加面向對象的大趨勢。許多語言(Ruby是一個例子)完全是面向對象的,但不是框架。 Ruby on Rails是用Ruby編寫的框架的一個例子。

因此不,PHP不會成爲一個框架。

4

只有內置函數?你有沒有使用Java或C#語言?如果增加幾個類和接口將PHP變成一個框架,那麼這些語言現在實際上是操作系統。

PHP沒有成爲一個框架。它不甚密切。

+0

從未與C#合作過,但他的標準庫有多大? BCL和.net是C#之外的嗎?所有的語言都有一個標準庫..其餘的應該在外部庫或框架中。 – 2010-05-07 14:49:31

+1

@Elzo - 我也指的是.NET。畢竟,你很少看到C#。 – 2010-05-07 15:08:53

0

我認爲它正在轉變成一個大型圖書館,因爲它充滿了好東西,但沒有什麼可以用一條漂亮的絲帶將它們全部捆綁起來。

像Zend或Symfony這樣的框架將爲組織PHP應用程序創造奇蹟。單獨使用PHP,對於大型項目來說不太好。