2010-11-07 74 views
1

我想在我的Zend框架的項目使用這樣的代碼:Zend_Framework - 類命名

public function indexAction() { 
    $user = new User(); 
    $user->name = "Guest"; 
    $user->save(); 
} 

這對我很重要,主要的是,該類稱爲只是User,而不是App_Model_User,但我怎麼可能管理呢? 我以爲可以在模型文件夾的路徑添加到該文件User.php和include_path:

<?php 
class User { 
    /* Some code */ 
} 

但我怎麼能配置磁帶自動加載機加載該文件/類? 目前,我正在使用帶有appnamespace(「App」)的自動加載器來加載名爲App_Model_User的類,該類可以工作,但類命名並非我想的。它應該更清潔,更清晰。

回答

2

我用set_include_path如下:

$root = dirname(dirname(__FILE__)); 

set_include_path(
    $root . '/application' . PATH_SEPARATOR 
    . $root . '/library' . PATH_SEPARATOR 
    . $root . '/application/models' . PATH_SEPARATOR 
    . $root . get_include_path() 
); 

然後自動裝卸拿起我放在/應用/模型的任何模型(任何名稱)。以上是我唯一面向公衆的腳本(index.php)。這是我如何設置自動裝載機:

$autoloader = Zend_Loader_Autoloader::getInstance(); 
$autoloader->setFallbackAutoloader(true); 

第二行將確保您的模型不必顯式包含。請參閱:

http://framework.zend.com/manual/en/zend.loader.autoloader.html

+0

我試了一下,但後來我必須編寫'require'User.php'它可以工作,但我怎麼能配置Zend Framework自動加載器來自動執行? PS:從PHP 5.3開始,'dirname(__ FILE __)'可以替換爲'__DIR__' – Poru 2010-11-07 15:03:39

+0

@Poru - 請參閱我的編輯,我希望解決它。 – karim79 2010-11-07 15:39:18

+0

剛剛發現了這個解決方案,然後我看到了你的編輯,不過謝謝!)!現在它工作了! – Poru 2010-11-07 15:48:24

0

什麼是你的PHP版本?您可以使用命名空間。

+0

DEV系統:> 5.3但我的服務器有5.2.x :( – Poru 2010-11-07 17:02:08