2010-09-13 55 views
1

我有大約10個使用大約30個函數的動態php頁面。每個功能需要超過1頁,每個頁面需要不同的功能子集。在幾個php頁面之間共享功能的最有效方式

我一直在琢磨這些選項:

1 - 所有的功能在一個單一的文件包括:每個頁面加載不需要的代碼

2 - 在自己的每個功能包括文件:過多的服務器請求時加載每一頁

4時附加的處理 - 一個包括每PHP頁面文件,用的副本:單包括用條件僅需要基於REQUEST_URI聲明函數文件 - 加載每一頁

3該頁面需要的功能:難以維護

人們如何處理這種情況?謝謝!

回答

3

將相關函數扔入庫中包括。根據需要包含庫。

此外,如果你花另外5秒鐘想着這個,那將是你浪費

另外5秒(如果你不明白我在說什麼,擔心包括優化約爲在你應該擔心的事情列表中,第五十億事情,直到最終用戶報告的性能問題和隨後的分析告訴你爲止。)

+0

只是尋找地方來提高頁面加載時間。將按照您的建議從別處開始。謝謝 – Deg 2010-09-13 22:56:04

1

選項1是最簡單,最容易維護的,可能運行速度比選項2和3要快。選項4的運行速度會非常快,但這是以維護噩夢爲代價的。

棒與選項1

+0

如果你只有30個功能,只需將它們放入一個文件並完成。 – TRiG 2010-09-13 20:29:46

+0

目前它們都在一個文件中。科森斯似乎是不值得惹惱它的。 THANKs – Deg 2010-09-13 23:01:56

0

您的問題呼喊OOP。

按類別組織代碼。根據需要加載類。

More into PHP OOP.

您加載的服務器最多30個功能上的影響相對於具有維護地圖和可能鏈接到所有30個函數自己的影響是卑鄙的。

+4

嗯,沒有。如果這30個函數都是邏輯上相關的,也許。海報不說。但是,如果這些功能在邏輯上不相關,那麼不要將它們束縛到一個班級中。這不是OOP。 – 2010-09-13 20:36:08

+2

@Frank Shearar只是試圖將海報指向正確的方向。他沒有**縫試圖重新使用代碼**和**我從來沒有說**將所有的功能放在一個類中。 *只需將代碼組織到類中並根據需要加載它們。* – Frankie 2010-09-13 20:44:46

+0

我還沒有找到廣泛的組。將現在保持在一起,但一些關於OPP的閱讀可能對以後的工作很有幫助......謝謝 – Deg 2010-09-13 23:00:29

0

首先將它們放在一個include_once'ed文件中。

如果性能成爲問題,請首先在服務器上安裝PHP加速器(將解析的PHP緩存到操作碼中,以避免不斷重新解析)。

當維護成爲問題時,按功能分解它們。儘管如此,你仍然會得到一個全能的「util.inc」或「misc.inc」文件...

+0

感謝您的幫助 – Deg 2010-09-13 23:03:25

+2

'.inc'文件的問題在於您的代碼可能對其他人可見。要麼告訴你的網絡服務器將帶'.inc'擴展名的文件解釋爲PHP,要麼將你的'.inc'文件放在網絡上不可見的目錄中,或者將你包含的代碼放在'.php'文件中。如果您包含的代碼包含敏感信息(如數據庫密碼),則情況尤其如此。 – TRiG 2010-09-14 09:14:15

+0

...或告訴你的Web服務器永遠不會顯示.inc文件。將包含的代碼放在Web服務器可以訪問的.php文件中是不好的做法,因爲如果它們意外執行,你不會去測試看看會發生什麼,並且如果它們發生了可能會發生壞事。 – gavinandresen 2010-09-14 12:01:27

相關問題