【发布时间】:2013-03-03 02:17:37
【问题描述】:
我之前使用的是 Zend Framework 2 的下载版本,基本上可以执行以下操作:
// Set include paths (add Zend to the path)
set_include_path(get_include_path() . PATH_SEPARATOR . $__CONFIG['zendPath']);
// Setup the Zend Autoloader
require_once('library\Zend\Loader\StandardAutoloader.php');
$autoLoader = new StandardAutoloader(array(
'namespaces' => array(
'Zend' => $__CONFIG['zendPath'] . '/library/Zend'
)
));
这是可行的,因为所有 Zend 包都在库文件夹中。我现在想使用 composer 只加载我需要的 Zend 包。我遇到的问题是包的排列方式如下:
zendframework/zend-cache/Zend/...
zendframework/zend-loader/Zend/...
zendframework/zend-validator/Zend/...
etc.
我尝试在 StandardAutoloader 中使用单独的命名空间声明,如下所示:
$autoLoader = new StandardAutoloader(array(
'namespaces' => array(
'Zend\Cache' => $__CONFIG['zendPath'] . '/library/zend-cache/Zend/Cache',
'Zend\Loader' => $__CONFIG['zendPath'] . '/library/zend-loader/Zend/Loader',
'Zend\Validator' => $__CONFIG['zendPath'] . '/library/zend-validator/Zend/Validator'
)
));
这行不通。假设命名空间中可能没有反斜杠吗?有什么办法可以使这项工作?最好不必定义每个单独的包。
【问题讨论】:
标签: zend-framework2