2017-01-09 70 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();