如何从Zend Framework模型类名中删除"Application_Model_"前缀?

Pet*_*owe 6 zend-framework

我有一个新的ZF 1.10项目(只是默认模块 - 而不是多个模块),并且我必须在模型的类名前加上"Application_Model_",以便从application/models目录中选择它们.

我怎样才能更好地控制这个?例如,我希望自己命名模型类 - 例如"Blah_ClassName"或者甚至只是"ClassName".

(我知道我可以使用set_include_path()来实现后者,但这不是"Zend-like".我认为需要对自动加载器进行某种改变 - 但这样做的最佳方式是什么?)

Ben*_*mer 8

您正在寻找资源自动装载机.

在你的引导程序中:

protected function _initResourceLoader()
{
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
        'namespace' => '',
        'basePath'  => APPLICATION_PATH,
    ));
    $resourceLoader->addResourceType('model', 'models/', 'Model');
    $resourceLoader->addResourceType('form', 'forms/', 'Form');
    $resourceLoader->addResourceType('service', 'services/', 'Service');

    return $resourceLoader;
}
Run Code Online (Sandbox Code Playgroud)

要加载资源:

$form    = new Form_Article    // loads from APPLICATION_PATH . /forms/Article.php
$model   = new Model_Article   // loads from APPLICATION_PATH . /models/Article.php
$service = new Service_Article // loads from APPLICATION_PATH . /services/Article.php
Run Code Online (Sandbox Code Playgroud)