Search code examples
phpzend-frameworkpdfzend-autoloader

Getting started with Zend PDF and Zend Guard Loader


I'm trying to install Zend PDF in order to fill out editable PDFs on my client's shared hosting account (media temple). I have it enabled now, confirmed in phpinfo https://i.sstatic.net/23N92.png but after that, I can't find out what I need to get started. If I try loading the Zend_Pdf class, I receive a "Fatal error: Class 'Zend_Loader' not found" message.


Solution

  • These are very different. Zend Guard Loader is used to run PHP scripts encoded by Zend Guard. And Zend Loader component is used, among other things, to simplify the development. For example, this...

    $pdf = new Zend_Pdf(); // what's Zend_Pdf, people?
    

    ... statement is meaningless to PHP unless it knows what is Zend_Pdf class. Thankfully, in PHP there's a special mechanism of importing these files automatically - autoloading. Here's how to do it with Zend_Loader:

    set_include_path(
        implode(PATH_SEPARATOR, array(
            get_include_path(),
            PATH_TO_ZF_LIBRARY
        )));
    
    require_once 'Zend/Loader/Autoloader.php';
    $autoloader = Zend_Loader_Autoloader::getInstance();
    ...
    $pdf = new Zend_Pdf(); // no error, as correct file should be imported automatically
    

    Actually, if it's only a single file that will use Zend component, it's not required that you use the autoloading mechanism. A simple require_once (no pun intended) would suffice:

    require_once 'Zend\Pdf.php';
    ...
    $pdf = new Zend_Pdf(); // oh, now I know all about Zend_Pdf!