我无法使用composer生成名称空间。此外,使用autoload_static而不是autoload_files,autoload_namespaces加载文件......
composer.json
{
"autoload": {
"psr-4": {
"core\\" : "/src/core/",
"CrmBundle\\Entity\\" : "/src/CrmBundle/Entity/",
"CrmBundle\\Controller\\" : "/src/CrmBundle/Controller/"
},
"classmap": [
"src/core/App.php",
"src/core/View.php",
"src/core/Controller.php"
]
},
"require": {
"doctrine/orm": "^2.5",
"symfony/console": "~2.5",
"twig/twig": "^1.24",
"filp/whoops": "^2.1"
}
}
生成的autoload_namespaces:
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Twig_' => array($vendorDir . '/twig/twig/lib'),
'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/lib'),
'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/lib'),
'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'),
'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib'),
'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/lib'),
'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib'),
);
首先,没有我的名称空间。其次,生成的命名空间未加载,因为出于某种原因在autoload_real中,加载通过autoload_static
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
print_r(" <br> static_loafing"); //i see this in index.php
call_user_func(\Composer\Autoload\ComposerStaticInit26d4625e30b8fe554b6b94853829798f::getInitializer($loader));
} else {
答案 0 :(得分:0)
您的自动加载路径不得以斜线开头!它们必须相对于composer.json
文件的位置。很可能你只需删除斜杠就可以了。
自动加载使用autoload_static.php
的原因是因为您使用的是PHP 5.6或更高版本。这个版本提供了一种非常有效地进行自动加载的方法,因此Composer使用它来加快速度。无需担心这一点,这不是你问题的一部分。