2013-08-23 47 views
2

我在PHP方面有一點經驗,但我主要來自Python。我非常喜歡Python的東西就是處理模塊的方式。如果我的目錄中有一個名爲a.py的文件,它包含一個名爲MyClass的類,我可以像這樣簡單地導入類。如何給PHP一個包含它自己的命名空間(比如「來自Python中的導入MyClass」)?

from a import MyClass 

但是,從PHP,我知道你可以這樣做:

include somefile.php 

這種進口並運行文件中的所有代碼,這使得它類似於在Python

from a import * 

以下然而,做一個通配符導入會讓我對我實際導入的內容毫無頭緒,並且還會導致命名空間污染。所以我的問題;有沒有一種方法可以通過命名它們來導入PHP中的類?

+1

這就是你想要的http://php.net /manual/en/language.namespaces.importing.php –

+0

請記住,將名稱空間與自動加載器結合使用(http://stackoverflow.com/questions/1830917/how-do-i-use-php-namespaces-with-自動加載)意味着每個文件限制爲一個類。我不知道爲什麼你想在同一個文件中使用兩個公共類。 –

回答

0

PHP中的良好做法是每個文件一類,在同一文件中不是所有的類模塊

例如:

classes/mynamespace/mypackage/IO.php 
classes/mynamespace/mypackage/DB.php 
classes/mynamespace/mypackage/log.php 
... 

然後使用自動加載磁帶機,每次你需要一個類在你的代碼中,自動加載器啓動並加載它。如果你不使用自帶內置自動加載器的框架,一個好的解決方案是使用作曲家提供的自動加載器,PHP的安全管理器:http://getcomposer.org/

相關問題