我刚刚升级,从苏1.7到苏1.9, 几乎 一切正常...除了动加载器。

老:

require_once('Zend/Loader.php');  
Zend_Loader::registerAutoload();

新:

require_once 'Zend/Loader/Autoloader.php';  
$loader = Zend_Loader_Autoloader::getInstance();  
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);

文件我需要自动加载多是没有名称空间(因为这是一个大项目从预命名空间).他们在下面的目录:

  • /application/控制器
  • /common/模型
  • /图书馆
  • /供应商

该网站似乎正常工作除外,它找不到/library/Form.php
它使用的可能,但现在不是了。它的工作如果我补充一require_once'library/Form.php',但这不应该是必要的,并且我担心如果我开始这样做,在一些地方,我需要放弃自动加载和硬代码所包括。我想添加"setFallbackAutoloader(true)",结合具有"图书馆"在我的包括路径会修好它,但是它没有。

我的包括路径是:
.:/用户/lofye/Documents/htdocs/mysitename/供应商
:/用户/lofye/Documents/htdocs/mysitename/共同的
:/用户/lofye/Documents/htdocs/mysitename/common/模型
:/用户/lofye/Documents/htdocs/mysitename/图书馆
:/用户/lofye/Documents/htdocs/mysitename

任何帮助极大的赞赏!

有帮助吗?

解决方案

你说它的工作如果你这样做:

require_once 'library/Form.php';

但是,如果你的路径图书馆为包括在内,那么你应该可以指定,作为自动装不是这样的:

require_once 'Form.php';

试试打字require_once'Form.php';成你的剧本。不弹?然后,你的包括路径不具备/库,这将需要修复。

其他提示

你自动加载只是要尝试装类开始 MySiteName_.尝试加入 Form 作为一名空间吗?

$loader->registerNamespace('Form');

这类名称的内部文件 library/Form.phpForm.你有什么类的名字吗?

我测试这里是工作的罚款。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top