通过编写器管理的类在我尝试实例化它们时不存在,这是在控制器中。
我的Zendframework 1.12.8文件/目录结构如下:
project
- application
- public
- index.php
- library
- vendor
- composer.json
- composer.lock
我的index.php文件的内容是:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Composer autoloader */
if (file_exists(realpath(APPLICATION_PATH . '/../vendor/autoload.php'))) {
require_once realpath(APPLICATION_PATH . '/../vendor/autoload.php');
}
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
包含了composer autoload.php,但似乎被Zend_Application忽略或覆盖。根据博客,我发现这是包含它的正确位置。有线索吗?
答案 0 :(得分:0)
右。一位同事找到了解决方案:在实例化作曲家管理的类时,我们需要为作曲家使用的名称空间添加前缀。因此new Vimeo\Vimeo($foo, $bar)
可以在制作实例use Vimeo\Video
之前使用new Vimeo($foo, $bar)
。