對於我的模型類,我希望不必將其命名爲「Default_Model_Class1」,它們將簡單地命名爲「Class1」。如何在Zend Framework中擁有簡單的模型類名?
我找不到辦法做到這一點。 謝謝
對於我的模型類,我希望不必將其命名爲「Default_Model_Class1」,它們將簡單地命名爲「Class1」。如何在Zend Framework中擁有簡單的模型類名?
我找不到辦法做到這一點。 謝謝
答案?通過作弊。
如果你在所有的車型,讓我們說,應用程序/模型,則可以將該路徑添加到您的包含路徑,並設置Zend的自動加載到回退時,它無法找到基於良好的命名規範(見KingCrunch的評論)
告訴磁帶自動加載機回退到:
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);
然後,當你嘗試加載YourModel駐留在你的模型路徑,自動加載器應該能夠處理它,你可以建立一個使用簡單名稱的引用。
即使您的應用程序很小,使用這些最佳做法總是很好。
我不確定哪個版本的PHP添加了use
關鍵字(可能是5.3增加了名稱空間),但是我已經將類名保留爲典型的長名稱,以解釋Zend Framework中缺少名稱空間和使用use
在我的腳本中縮短它們。這也意味着,如果我需要移動或重新命名類,出於任何原因,我只需要更改每個文件的use
語句。
use Application_Model_Users_User as Model_User;
另一個問題是:你爲什麼要這樣做?有很好的理由,爲什麼沒有使用它。首先,您可能因類名衝突而陷入麻煩。然後,前綴也是某種名稱空間(PHP <5.3不支持本地名稱空間),如果將其刪除,則它會丟失。所以不是說「對象是一個'Class1'(不管這是什麼意思),而是一個模型,並且來自Default-Module」你只想說「該對象是'Class1'」? – KingCrunch 2010-11-24 18:21:33