2013-03-13 72 views
1

我一直在用PHP編寫一段時間,但我一直主要使用函數和原始PHP進行編碼。PHP:我應該把所有的代碼寫在類中嗎?

我開始認爲我應該把我的代碼寫得更整潔更高效。我仍然無法全神貫注於課堂。我應該在課堂上寫所有的代碼嗎?

例如,我的一個腳本是'權限管理器' - 它允許管理員編輯站點上各種用戶組的權限。

傳統上,我會把它寫成只是帶有函數和whatnot的腳本。但是把它寫成一堂課會更好嗎?如果是這樣,這個班級將包含什麼?我有一個單獨的權限類用於網站,另一個用於管理編輯區域?

該網站還有一個API。這一切應該寫成一個班級嗎?

另外,我應該使用公共(共享)功能嗎?

謝謝!

+4

你應該得到一本關於面向對象設計的書,並考慮如何將它應用於網頁開發。在一個類中保存你的代碼不會讓你的代碼更加有組織。這個話題太廣泛了,不能在這裏回答一個問題。 – 2013-03-13 21:37:59

+0

我認爲這種討論更適合聊天。 OOP在正確的背景下非常棒,但是要回答這個問題,簡而言之,「你應該寫*全部*你的代碼......」可能不是 - 你可以過度設計一個問題。 – Emissary 2013-03-13 21:40:03

+0

我的答案是肯定的,但這不是一個單一答案的問題,所以這不適合這個討論。 – IMSoP 2013-03-13 22:02:56

回答

1

在我看來,一切都取決於你的項目有多大。我一直在使用Magento一段時間,它太大了,它必須分組在類和數據包。如果項目被拆分成類,則更容易閱讀代碼並分析項目結構。此外,當您需要在一個月或一年後修改您的項目時,良好的結構有助於重新學習它。

1

當在不同的環境中使用屬於和/或面向相同實體或建議的特定功能和變量集時,在類中編寫東西是有用的。它給人一種組織感,任務授權並避免重複代碼。

但是,在上述情況是錯誤的,它是完全一次性的。 Theres沒有意義的寫一個類只能在一個特定的地方運行。

另外,如果你只是想有一組在類似對象的風格像$user->name組織的信息,$user->age等您可以簡單地這樣做:

$user = (object)array(
    'name' => 'John', 
    'age' => 20 
); 
+1

重新您的最後一個代碼片段,爲什麼打擾到一個對象? PHP數組可以做所有的無類對象,通常更有效。 – IMSoP 2013-03-13 22:00:27

+0

主要是爲了看起來。代碼變得更可讀。 – Havenard 2013-03-13 22:10:20

+0

呃。我猜,味道很重要,但是'$ user ['name']'對我來說很好。 – IMSoP 2013-03-13 22:14:15

0

您應該接近從這個問題不同的角度。不要只是使用面向對象,因爲你認爲你必須。

問自己:

  1. 有沒有我可以在我的應用程序的其他部分重用我的應用程序的部分?然後這些可以從您的腳本中取出並放入函數或類中。

  2. 是否有一種情況下,您想要交換代碼的某些部分來更改行爲而不必重寫應用程序的主要部分?然後,類和接口是爲你。

使用OOP原則的另一個好的理由是提高了代碼的可測試性。使用接口允許您在測試時交換模擬或存根的實際對象。

相關問題