Php can';t访问Zend Framework 2上的供应商文件和命名空间
我需要从供应商文件夹中获取我的库,但我无法从控制器中实例化它。每当我尝试调用类名时,它都不起作用,并且总是导致 致命错误:在第33行的/var/www/project1/module/Sportsui/src/Sportsui/Controller/DropboxController.php中找不到类“Sports\Database\Model\DropboxMapper” 我的供应商目录看起来像Php can';t访问Zend Framework 2上的供应商文件和命名空间,php,zend-framework2,Php,Zend Framework2,我需要从供应商文件夹中获取我的库,但我无法从控制器中实例化它。每当我尝试调用类名时,它都不起作用,并且总是导致 致命错误:在第33行的/var/www/project1/module/Sportsui/src/Sportsui/Controller/DropboxController.php中找不到类“Sports\Database\Model\DropboxMapper” 我的供应商目录看起来像 vendor/ ├── autoload.php ├── bin │ ├── autoload
vendor/
├── autoload.php
├── bin
│ ├── autoload_classmap.php
│ ├── classmap_generator.php -> ../zendframework/zendframework/bin/classmap_generator.php
│ ├── plugin_classmap.php
│ ├── pluginmap_generator.php -> ../zendframework/zendframework/bin/pluginmap_generator.php
│ └── templatemap_generator.php -> ../zendframework/zendframework/bin/templatemap_generator.php
├── composer
│ ├── autoload_classmap.php
│ ├── autoload_namespaces.php
│ ├── autoload_real.php
│ ├── ClassLoader.php
│ └── installed.json
├── mwGearman
├── README.md
├── Sports
│ ├── autoload_classmap.php
│ ├── library
│ │ └── Sports
│ │ ├── Database
│ │ │ └── Model
│ │ │ ├── DropboxMapper.php
│ │ │ ├── Entity
│ │ │ │ ├── Dropbox.php
│ │ │ │ ├── EntityAbstract.php
│ │ │ │ ├── SourceFields.php
│ │ │ │ └── Sources.php
│ │ │ ├── MapperAbstract.php
│ │ │ ├── SourceFieldsMapper.php
│ │ │ └── SourcesMapper.php
│ │ ├── FileSystemHandler.php
│ │ ├── Gearman
│ │ │ ├── Client.php
│ │ │ ├── DropboxClient.php
│ │ │ ├── DropboxWorker.php
│ │ │ ├── ValidatorClient.php
│ │ │ ├── ValidatorWorker.php
│ │ │ └── Worker.php
│ │ ├── Mvc
│ │ │ └── Controller
│ │ │ └── UtilsController.php
│ │ └── Utility
│ │ └── FileReader.php
│ └── Module.php
└── ZF2
ZF2生成的自动加载类映射器如下所示
<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
'Sports\Module' => __DIR__ . '/Module.php',
'Sports\FileSystemHandler' => __DIR__ . '/library/Sports/FileSystemHandler.php',
'Sports\Database\Model\DropboxMapper' => __DIR__ . '/library/Sports/Database/Model/DropboxMapper.php',
'Sports\Database\Model\SourcesMapper' => __DIR__ . '/library/Sports/Database/Model/SourcesMapper.php',
'Sports\Database\Model\SourceFieldsMapper' => __DIR__ . '/library/Sports/Database/Model/SourceFieldsMapper.php',
'Sports\Database\Model\Entity\Dropbox' => __DIR__ . '/library/Sports/Database/Model/Entity/Dropbox.php',
'Sports\Database\Model\Entity\EntityAbstract' => __DIR__ . '/library/Sports/Database/Model/Entity/EntityAbstract.php',
'Sports\Database\Model\Entity\SourceFields' => __DIR__ . '/library/Sports/Database/Model/Entity/SourceFields.php',
'Sports\Database\Model\Entity\Sources' => __DIR__ . '/library/Sports/Database/Model/Entity/Sources.php',
'Sports\Database\Model\MapperAbstract' => __DIR__ . '/library/Sports/Database/Model/MapperAbstract.php',
'Sports\Mvc\Controller\UtilsController' => __DIR__ . '/library/Sports/Mvc/Controller/UtilsController.php',
'Sports\Gearman\ValidatorWorker' => __DIR__ . '/library/Sports/Gearman/ValidatorWorker.php',
'Sports\Gearman\ValidatorClient' => __DIR__ . '/library/Sports/Gearman/ValidatorClient.php',
'Sports\Gearman\Worker' => __DIR__ . '/library/Sports/Gearman/Worker.php',
'Sports\Gearman\DropboxWorker' => __DIR__ . '/library/Sports/Gearman/DropboxWorker.php',
'Sports\Gearman\Client' => __DIR__ . '/library/Sports/Gearman/Client.php',
'Sports\Gearman\DropboxClient' => __DIR__ . '/library/Sports/Gearman/DropboxClient.php',
'Sports\Utility\FileReader' => __DIR__ . '/library/Sports/Utility/FileReader.php',
);
和控制器
namespace SportsUi\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Sports\Database\Model\DropboxMapper;
class DropboxController extends AbstractActionController
{
public function fooAction()
{
// echo "Asdasd";
return array();
}
public function indexAction()
{
// echo "Asdasd";
return array();
}
public function viewFileAction()
{
$dropbox = new DropboxMapper(); //
return array('title'=> 'Title of the page');
}
}
为了使路径有意义,您必须将类映射文件放入顶级运动目录。另外,您如何将类映射加载到自动加载器上?是否将Sports\Module的类映射添加到autoloader中,然后将Sports添加到application.config.php中的模块列表中?
namespace SportsUi\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Sports\Database\Model\DropboxMapper;
class DropboxController extends AbstractActionController
{
public function fooAction()
{
// echo "Asdasd";
return array();
}
public function indexAction()
{
// echo "Asdasd";
return array();
}
public function viewFileAction()
{
$dropbox = new DropboxMapper(); //
return array('title'=> 'Title of the page');
}
}