我需要从供应商文件夹中获取我的库,但我无法从我的控制器中实例化它。每当我尝试调用类名时,它都不起作用并且总是导致
致命错误:在第 33 行的 /var/www/project1/module/Sportsui/src/Sportsui/Controller/DropboxController.php 中找不到类“Sports\Database\Model\DropboxMapper”
我的供应商目录看起来像
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 生成的 Autoload classmapper 看起来像这样
<?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',
);
主要配置
// These are various options for the listeners attached to the ModuleManager
'module_listener_options' => array(
// This should be an array of paths in which modules reside.
// If a string key is provided, the listener will consider that a module
// namespace, the value of that key the specific path to that module's
// Module class.
'module_paths' => array(
'./module',
'./vendor',
),
和控制器
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');
}
}