gpt4 book ai didi

php - 对模型使用 Zend_Autoloader

转载 作者:行者123 更新时间:2023-12-02 11:52:18 24 4
gpt4 key购买 nike

有人知道如何使用"new"Zend Autoloader 来加载模型吗?目前我的配置如下所示:

应用程序.ini

# Autoloader Namespace
autoloadernamespaces.0 = "Sl_"

Bootstrap.php

   /**
* Start Autoloader
*
* @access protected
* @return Zend_Application_Module_Autoloader
*/
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Sl_',
'basePath' => dirname(__FILE__),
));

return $autoloader;
}

所以当我将模型放入/Models/User.php 时

class Sl_Model_User{}

并创建一个新对象,一切都按设计进行。但是我如何使用自动加载器加载放置在/Models/Dao/UserDB.php 中的模型?

class Dao_UserDB{}

最佳答案

检查 Resource_Autoloader 的文档(其目的是加载驻留在模型目录或其他位置的资源 - 即/library 文件夹之外)。

“资源自动加载器旨在管理遵循 Zend Framework 编码标准指南的命名空间库代码,但类名和目录结构之间没有 1:1 映射。它们的主要目的是促进自动加载应用程序资源代码,例如特定于应用程序的模型、表单和 ACL。

资源自动加载器在实例化时向自动加载器注册,并使用它们关联的命名空间。这使您可以轻松地在特定目录中命名空间代码,并且仍然获得自动加载的好处。”

path/to/some/directory/
acls/
Site.php
forms/
Login.php
models/
User.php


$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => 'path/to/some/directory',
'namespace' => 'My',

));

$resourceLoader->addResourceTypes(array(
'acl' => array(
'path' => 'acls/',
'namespace' => 'Acl',
),
'form' => array(
'path' => 'forms/',
'namespace' => 'Form',
),
'model' => array(
'path' => 'models/',
),

));

在你的 boostrap 文件中尝试一下:

protected function _initLoaderResource()
{
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => 'your_doc_root' . '/application',
'namespace' => 'MyNamespace'
));
$resourceLoader->addResourceTypes(array(
'model' => array(
'namespace' => 'Model',
'path' => 'models'
)
));
}

关于php - 对模型使用 Zend_Autoloader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com