2009-11-30 70 views
0

我試圖在半開發的Web項目中使用第三方PHP庫。不幸的是,當我開始使用第三方代碼時,我意識到存在大量的變量和類名衝突。我很想知道是否有策略來改進這個新代碼的命名空間。圍繞第三方代碼改進名稱空間的PHP策略

...是的,有同樣的責任被傳遞給我自己不利用名稱空間,以及

關閉我的頭頂,我正在考慮修改每一個PHP文件,並補充說:

namespace facePalm; 

不過我很好奇,想知道是否有正好是一個更好的解決方案。特別是隨着代碼的額外修訂版本的發佈,我寧願不必觸摸編輯30多個文件的&。

回答

1

命名空間僅設置爲一個文件,並且文件只能包含1個命名空間。恐怕你沒有其他解決方案來做到這一點。 我剛剛檢查過一個文件可以包含多個命名空間。但是,如果不在文件頂部定義文件,則不能在文件中包含名稱空間。

+0

...結合您的評論,我發現這個工作。在我的特定情況下,向每個文件添加名稱空間已足夠。 – crftr 2009-12-02 20:44:45

0

第三方代碼是否需要進行維護?如果是這樣,你會想要解決它所具有的任何結構和約定。在這種情況下,進行全球搜索並替換您的名字是最方便的解決方案。只有30個文件,這可以在一兩天內處理。如果你不這樣做,你會很容易年齡再增加幾年。

+0

預計他們的代碼更新。是的,我以前一直手動解決命名衝突 - 雖然我現在感覺很髒。實質上,對於這個懶惰的編碼器來說,「一到兩天就可以管理」太長了。 – crftr 2009-12-01 00:02:36

+2

如果第三方代碼在沒有任何名稱空間的情況下工作,將其放入命名空間「ThirdParty」中應該與添加「命名空間ThirdParty;」一樣簡單在第三方腳本的每個文件的頂部。爲它做一個小腳本,你贏了。 – Savageman 2009-12-01 00:09:16