2017-01-09 2 views
0

Я установил пакет 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'), 
); 

Кто-нибудь, кто видит мою ошибку?

ответ

2

PHPExcel class не находится в пространстве имён.

Это работает для меня:

<?php 

require_once __DIR__ . '/vendor/autoload.php'; 

$phpExcel = new \PHPExcel(); 
0

только простой

<?php 

require_once __DIR__ . '/vendor/autoload.php'; 

$phpExcelObject = new PHPExcel(); 
Смежные вопросы