2013-10-23 66 views
0

我想在Zend Framework中使用ZendPdf。我正在構建骨架應用程序。我已經使用composer.phar獲取ZendPdf所需的軟件包,並且所有文件現在位於與目錄zendframworkvendor相同的目錄下,名爲zendpdf的目錄下,因此我假定軟件包更新正常。如何在Zend Framework中使用ZendPdf Pdf 2

這裏是我的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 

我仍然在試圖讓我的周圍命名空間頭等任何幫助表示讚賞。

編輯:

我知道,PDF功能不包括ZF2,這就是爲什麼我用composer.phar得到它。我真正想知道的是如何實例化ZendPDF類?

+0

ZF2中不再有Pdf。看到這個[回答](http:// stackoverflow。com/questions/12673089/generate-pdf-file-with-zend-framework-2) – Havelock

+0

是的,我明白這一點。這就是我使用'composer.phar'下載軟件包的原因。我的問題是如何實例化類? – beingalex

回答

1

有一個在ZendPdf無類Pdf,我想你可能是指PdfDocument

\ZendPdf\PdfDocument::load($fileName); 

既然你說你是新的命名空間,我建議使用use命令,使您的代碼有點可讀性。如果您要添加:

use ZendPdf\PdfDocument; 

到類的頂部,然後PHP知道PdfDocument\ZendPdf\PdfDocument,這樣,那麼你可以這樣做:

PdfDocument::load($fileName); 
在你的控制器動作

1

來到這裏有同樣的錯誤;我已經解決了這個辦法:

A.如果從作曲家下載,轉到步驟C.手動下載,創建供應商提供的 「zendpdf」 文件夾\ zendframework:

例如: C:\ mywww \ zf2 \ vendor \ zendframework \ zendpdf

B.在新的「zendpdf」文件夾中複製masterzip內容(庫文件夾,測試文件夾,composer.json等)。

C.編輯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 
0

問題是你正在使用ZendPdf \ pdf :: load()。這已在zf2 v> 2.0中修改爲ZendPdf \ PdfDocument :: load()。 希望這可以解決問題。