2011-07-19 72 views
-1

我不太熟悉PHP類或面向對象編程。如何將PHP腳本轉換爲類?

我有一個用PHP編寫的網站,完全是用類編寫的。

我想根據腳本添加一個新的部分到我的網站,我已經有了不是一個類。

這個腳本的主要文件有幾個函數,它還包括外部函數,它們都不在一個類中。

我需要做些什麼才能使腳本與當前OOP站點一起工作?換句話說,我怎樣才能將PHP腳本轉換爲一個類,使得所有對函數的調用和包含在新類中的工作都沒有任何錯誤?

謝謝。

+3

請參閱[將程序設計轉換爲對象重構](http://sourcemaking.com/refactoring/convert-procedural-design-to-objects) – Gordon

+3

我們也不知道您的oop體系結構是怎樣的,也不是您的程序腳本作品。這是一個不可回答的問題。瞭解OOP如何工作,並且您將知道如何實施它。 –

+0

你是否嘗試過使用代碼而不把它變成類?這也可能工作... – feeela

回答

0

你想添加另一個頁面嗎?你必須找到如何將控制器添加到應用程序,這是完全依賴框架的

關於類與非類腳本:這不是問題,但您可能必須爲現有代碼編寫一個小包裝類。另一方面,如果你的代碼相對較小,那麼摺疊它當然是有意義的。

1

重寫所有非oop類。

我知道這是相當複雜的,但唯一很好的解決方案。

對於弱的解決方案(不推薦,他們是crapy)

  • 你可以在你的PHP文件開始的檢查要求,包括腳本#1或腳本#2

  • 您可以設置非-oop腳本somewher只輸出數據和寫在第二個腳本一些小的模塊,獲得通過的file_get_contents,捲曲,Ajax請求或某物

不要t個第一的內容關於'類' - '非類'的差異,這不是點,關鍵是兩個腳本的體系結構/框架,在每個腳本中創建模塊/功能的方式。 我的意思是,類編寫的代碼CAN與非班級書面休息。

0

有沒有辦法得到滿意的答案,因爲這一切都取決於手頭的情況。例如,輸出可以由smarty處理。在這種情況下,您的腳本不需要是OOP,只需將該對象用於輸出即可。

如果你真的希望它是OOP,你應該做的第一件事是重新考慮你的代碼,所以它只使用函數。總是執行並且不能放入函數的東西進入構造函數。你把所有的東西都包裝進了一個班級,然後你去了一個新班級。

但是在你這樣做之前,你應該分析代碼,並問問自己,你是否真的需要代碼是OOP。你是否必須微調管理數十個變量和數組,以便隨時掌握所需的值?你有很多改變/管理/輸出變量的功能嗎?在這種情況下,你應該使用OOP。在任何其他情況下,您最好使用常規功能。