我正在尝试在Zend Framework中使用ZendPdf。我正在构建骨架应用程序。我使用composer.phar
来获取ZendPdf所需的包,所有文件现在位于zendpdf
目录下的zendframwork
目录下的vendor
目录下,所以我假设包更新有效。
这是我的IndexController.php
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Json\Json;
class IndexController extends AbstractActionController
{
public function indexAction()
{
$fileName = 'foo.pdf';
$pdf = \ZendPdf\Pdf::load($fileName);
// Some JSON stuff etc
// …
}
}
我收到以下错误:
Fatal error: Class 'ZendPdf\Pdf' not found in /mnt/host-home/websites/mywebsite.com/module/Application/src/Application/Controller/IndexController.php on line 16
我仍然试图了解名称空间等问题。感谢任何帮助。
编辑:
我知道ZF2不包含PDF功能,这就是我使用composer.phar来获取它的原因。我真的想知道的是如何实例化ZendPDF类?
答案 0 :(得分:1)
Pdf
中没有课程ZendPdf
,我想你可能意味着PdfDocument
:
\ZendPdf\PdfDocument::load($fileName);
由于您说您是名词空间新手,我建议您使用use
命令来帮助您的代码更具可读性。如果您要添加:
use ZendPdf\PdfDocument;
到你的班级顶部,然后PHP知道PdfDocument
引用了\ZendPdf\PdfDocument
,所以你可以这样做:
PdfDocument::load($fileName);
在你的控制器动作中。
答案 1 :(得分:1)
带着同样的错误来到这里;我这样解决了:
一个。如果从作曲家下载,请转到步骤C.对于手动下载,请创建一个&#34; zendpdf&#34; vendor \ zendframework上的文件夹:
例如: C:\ mywww \ ZF2 \厂商\ zendframework \ zendpdf
B中。将masterzip内容(Library文件夹,test文件夹,composer.json等)复制到新的&#34; zendpdf&#34;文件夹中。
℃。从以下位置编辑StandardAutoloader.php:
C:\ mywww \ ZF2 \厂商\ zendframework \ zendframework \库\ Zend的\装载机\ StandardAutoloader.php
.
.
.
foreach ($options as $type => $pairs) {
switch ($type) {
case self::AUTOREGISTER_ZF:
if ($pairs) {
$this->registerNamespace('Zend', dirname(__DIR__));
$this->registerNamespace('ZendXml', dirname(dirname((__DIR__))) . '/ZendXml');
$this->registerNamespace('ZendPdf', dirname(dirname((__DIR__))) . '/ZendPdf'); //add this line.
}
break;
.
.
.
全部;现在我们可以使用Pdf函数:
use ZendPdf\PdfDocument; //dont' forget to add this at start ;)
$pdf1 = new PdfDocument(); // Create a new PDF document
//$fileName = 'test.pdf';
//$pdf2 = Zend_Pdf::load($fileName);// Load a PDF document from a file
//$pdf3 = Zend_Pdf::parse($pdfString);// Load a PDF document from a string
答案 2 :(得分:0)
问题是您使用的是ZendPdf \ pdf :: load()。这已在zf2 v> 2.0中修改为ZendPdf \ PdfDocument :: load()。 希望这能解决问题。