Zend框架2:class_exists(' mPDF')返回true但新的mPDF()失败

时间:2014-11-17 15:30:08

标签: zend-framework2 mpdf

我想在控制器中使用mPDF如下(测试场景):

function indexAction() {
    require_once('libraries/mpdf/mpdf.php');
    var_dump(class_exists('mPDF')); //prints true
    $mpdf = new mPDF(); //fails with 'class not found in Application/Controller (current namespace)
}

类mPDF在mpdf.php文件中声明,并且我已检查文件是否已加载并且确实已加载。

1 个答案:

答案 0 :(得分:2)

要解决此问题,您必须添加类名称的\ infront以重置名称空间

function indexAction() {
    require_once('libraries/mpdf/mpdf.php');
    var_dump(class_exists('mPDF')); //prints true
    $mpdf = new \mPDF(); //fails with 'class not found in Application/Controller (current namespace)
}

错误消息是此

的线索
  

//失败,在应用程序/控制器(当前命名空间)中找不到“类”

但是我不知道为什么class_exist返回true。当我在autoload_classmap.php上课时,它没有这样做,但是当我需要_once时,我遇到了同样的问题。

如果你不想在函数中使用require_once php文件,你可以将它添加到模块根目录下的类mapp文件中

<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
    'mPDF'                          => __DIR__ . 'path/to/file/mpdf.php',
);

我使用PHPMailer

执行此操作