2013-10-23 3 views
0

젠드 프레임 워크에서 ZendPdf를 사용하려고합니다. 나는 해골 응용 프로그램을 구축 중입니다. 나는 composer.phar을 사용하여 ZendPdf에 필요한 패키지를 얻었으며 모든 파일은 zendframworkvendor에있는 디렉토리와 동일한 디렉토리에 zendpdf이라는 디렉토리 아래에 있으므로 패키지 업데이트가 제대로 수행되었다고 가정합니다.Zend Framework 2에서 ZendPdf Pdf를 사용하는 방법

Fatal error: Class 'ZendPdf\Pdf' not found in /mnt/host-home/websites/mywebsite.com/module/Application/src/Application/Controller/IndexController.php on line 16 

난 여전히 등 네임 스페이스의 주위에 내 머리에 어떤 도움이 감사를 얻기 위해 노력하고 있어요 :

은 여기 내 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 
        // … 
     } 
} 

나는 다음과 같은 오류가 발생합니다.

편집 :

나는 PDF 기능이 내가 그걸 얻기 위해 composer.phar을 사용하는 이유입니다 ZF2,에 포함되지 않았 음을 알 수 있습니다. ZendPDF 클래스를 인스턴스화하는 방법을 알고 싶습니다. 당신은 내가 당신의 코드 A를 만드는 데 도움이되는 use 명령을 사용하는 것이 좋습니다 것, 네임 스페이스를 처음 사용했다 이후

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

:

+0

ZF2에는 더 이상 Pdf가 없습니다. 이 [답변] (http : // stackoverflow.com/questions/12673089/generate-pdf-file-with-zend-framework-2) – Havelock

+0

네, 이해합니다. 그래서'composer.phar '를 사용하여 패키지를 다운로드 한 것입니다. 내 질문은 어떻게 클래스를 인스턴스화합니까? – beingalex

답변

1

난 당신이 아마 PdfDocument을 의미 생각 ZendPdf에는 클래스 Pdf 없다 조금 더 읽기 쉽습니다. 추가한다면 :

use ZendPdf\PdfDocument; 

클래스의 상단에, PHP는 PdfDocument\ZendPdf\PdfDocument을 말한다 것을 알고, 그래서 당신은 단지 수행 할 수 있습니다 귀하의 컨트롤러 액션에서

PdfDocument::load($fileName); 

합니다.

1

같은 오류가 있습니다.

작곡가에서 다운로드 한 경우, 공급 업체에 "zendpdf"폴더를 생성, 사용 설명서 다운로드 C. 단계로 이동

A. \ zendframework :

예 : C : \ mywww 나는이 방법을 해결했던 \ zf2 \ vendor \ zendframework \ zendpdf

B. 새로운 "zendpdf"폴더에 masterzip 내용 (라이브러리 폴더, 테스트 폴더, composer.json 등)을 복사하십시오.

C. 편집 StandardAutoloader.php에서 :

C : \ mywww \ zf2 \ 업체 \ zendframework \ zendframework \ 라이브러리 \ 젠드 \ 로더 \ 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()로 수정되었습니다. 호프가 문제를 해결하기를 바랍니다.

관련 문제