2017-01-09 71 views
0

我通过作曲家安装了phpoffice/phpexcel软件包。无论如何,自动加载不起作用。我尝试命名空间的每一个组合来调用类,但它不存在:php作曲家自动加载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的文件也按照预期位于vendor/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();