我的目录结构是这样的:
- c:\Workspaces\Zend
- c:\Workspaces\自定义库
自定义库是一个共享库,正在其他应用程序中使用。它不使用命名空间,仅使用旧式下划线。
我下载了 ZF2-Restful-Module-Skeleton,打算将其用作静态服务器。在 InfoController 中我有这样的代码:
namespace Main\Controller;
use Zend\Mvc\Controller\AbstractRestfulController;
class InfoController extends AbstractRestfulController
{
public function getList()
{
$data = array(
'phone' => '+30123456789',
'email' => 'email@domain',
);
$Res = new CL_Res_Chain_Mutable();
return $data;
}
}
错误消息是:
Fatal error: Class 'Main\Controller\CL_Res_Chain_Mutable' not found in C:\Workspaces\Zend\module\Main\src\Main\Controller\InfoController.php
显然,我需要将这个自定义库添加到我的 Zend 应用程序中,但我在这里“有点”迷失,我真的不知道如何做到这一点。我在谷歌上搜索了几个解决方案,但似乎都不是这样的。
此外,我在文件夹 c:\Workspaces\Custom library 2
中有另一个库,其中包含(以及其他文件)文件(类)D.php,我像 D::一样使用它转储($数据);
如何让它在我的 Zend 应用程序中工作?
最佳答案
您需要配置StandardAutoloader
来加载您的库类。最简单的方法是修改应用程序模块的 Module::getAutoloaderConfig()
方法,使其看起来像这样:
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
'prefixes' => array(
'CL' => 'c:\\Workspaces\\Custom library/CL',
'D' => 'c:\\Workspaces\\Custom library 2/D',
),
),
);
}
我添加了一个 prefixes
键,然后列出了前缀名称以及在磁盘上的位置。 Standard Autoloader documentation有更多详细信息。
如果您正在使用 Zend Skeleton Application您也可以简单地将这些命名空间添加到您的 init_autoloader.php 中文件。
关于php - Zend Framework 2 包括自定义库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952697/