2013-09-04 4 views
3

내 ZF2 프로젝트에 TCPDF 라이브러리를 사용하고 싶습니다. 라이브러리 소스가 있지만 Zend Framework 2 네임 스페이스 (PSR-0 아님)와 호환되지 않습니다. 그것을 프로젝트에 포함시키는 방법? ZF2 호환으로 변환 할 수있는 방법이있는 경우.젠드 프레임 워크 2에서 사용자 정의 타사 라이브러리 사용 방법

라이브러리를 그대로 사용하는 방법이 있다면 (라이브러리 소스를 배치 할 위치와 포함 방법) 프로세스를 보여주십시오.

대안으로 ZendPdf를 제안하지 마십시오. 감사합니다

+0

zend 's namespacer 명령 줄 도구를 사용하여 이전 TCPPDF 라이브러리를 더 많은 자동 로더 및 네임 스페이스로 변환 할 수 있습니다. https://github.com/zendframework/Namespacer 표준 인식 코딩과 같이 네임 스페이스, 자동 로딩 및 PSR-0이 없으면 이러한 통합 타사 라이브러리는 어려울 것입니다. – edigu

답변

6

이렇게 foozy가 언급 한 명령 줄 도구로 이것을 수행하는 한 가지 방법이 있지만 다른 사람의 코드를 변경하고 그 두통을 원하는 사람이 있습니다. PSR-0이 아니더라도 클래스이기 때문에 Composer에서 autoload:classmap directive을 사용하여이 작업을 수행 할 수 있습니다. 과 같이 composer.json하는

기본적으로, 당신은 어딘가에 편리 TCPDF 파일 (공급 업체 폴더, lib 폴더 등)을 배치 할 후 자동로드 지시문을 추가 : 당신을 가정

{ 
    "autoload": { 
     "classmap": ["vendor/tcpdf"] 
    } 
} 

는 TCPDF 폴더를 배치 vendor 폴더에 있고 TCPDF 클래스가 tcpdf 폴더의 루트에 있음을 나타냅니다. 그런 다음 php composer.phar update을 실행합니다. 그런 다음 Composer는 해당 폴더를 소스 위치로 SPL 자동 로더에 등록하는 자동 로더 기능에 추가합니다.

그렇다면 어디에서 언제 TCPF 클래스를 사용 하시겠습니까? $pdf = new \TCPDF().

참고 : 나는 프로젝트 루트, composer.phar 또는 공급 업체 폴더에 상대적인 경로에서 100 %가 아닙니다.

+0

$ pdf = new \ TCPdF()는 $ pdf = new \ TCPDF() 여야합니다. – cptnk

+0

수정 됨, 고맙습니다 :) – Adrian

+0

autoload 기능에 대해 감사드립니다. 저에 대해 잘 모르는 일부 troube;) – cptnk

관련 문제