Я установил пакет phpoffice/phpexcel через композитор. В любом случае автозагрузка не работает. Я пробовал все комбинации имен, чтобы вызвать класс, но это не было:php comper autoload на phpoffice/phpexcel не работает
PHP Fatal error: Class 'PHPExcel\\PHPExcel' not found in
Код, который зовет его:
$objPHPExcel = new \PHPExcel\PHPExcel();
composer.json выглядит красиво:
{
"name": "Bjc/Iis",
"description": "A complete software suite for commerce",
"license": "MIT",
"keywords": ["commerce"],
"authors": [
{
"name": "me",
"email": "[email protected]"
}
],
"require": {
"phpmailer/phpmailer": "5.*",
"components/jquery": "2.*",
"twbs/bootstrap": "3.*",
"zendframework/zend-barcode": "*",
"zendframework/zend-validator": "*",
"phpoffice/phpexcel": "1.8.*"
},
"require-dev": {},
"autoload": {
"psr-4": {
"Bjc\\Iis\\": "src"
}
}
}
команда «композиторское обновление» прошла хорошо. Файлы phpoffice/phpexcel также находятся в вендоре/phpoffice/phpexcel, как ожидалось.
Я называю композитор автозагрузчик в моем сценарии следующим образом (и это работает, например, с PHPMailer):
require_once(__DIR__.'/../vendor/autoload.php');
PHPExcel также имеют ссылки во все автозагрузчике файлах композитора:
поставщика/композитор/autoload_static имеет (помимо прочих) эти строки:
public static $prefixesPsr0 = array (
'P' =>
array (
'PHPExcel' =>
array (
0 => __DIR__ . '/..' . '/phpoffice/phpexcel/Classes',
),
),
);
И продавец/композитор/autoload_namespaces.php выглядит следующим образом:
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'PHPExcel' => array($vendorDir . '/phpoffice/phpexcel/Classes'),
);
Кто-нибудь, кто видит мою ошибку?