У меня проблемы с использованием библиотеки штрих-кодов Zend (ZF V 1.12.3) в CodeIgniter (V 3.1.7) - PullRequest
0 голосов
/ 11 мая 2018

Я сделал все по следующему правилу.

1) Загрузите Zend Framework с официального сайта

2) Разархивируйте пакет Zend Framework и скопируйте папку Zend (в разделе «Библиотека») в приложение / библиотеки установки вашего CodeIgniter /

Затем я создал новый php-файл с именем Zend.php в папке application / librarys со следующим кодом.

<?php if (!defined('BASEPATH')) {exit('No direct script access allowed');}

/**
 * Zend Framework Loader
 *
 * Put the 'Zend' folder (unpacked from the Zend Framework package, under 'Library')
 * in CI installation's 'application/libraries' folder
 * You can put it elsewhere but remember to alter the script accordingly
 *
 * Usage:
 *   1) $this->load->library('zend', 'Zend/Package/Name');
 *   or
 *   2) $this->load->library('zend');
 *      then $this->zend->load('Zend/Package/Name');
 *
 * * the second usage is useful for autoloading the Zend Framework library
 * * Zend/Package/Name does not need the '.php' at the end
 */
class CI_Zend
{
    /**
     * Constructor
     *
     * @param   string $class class name
     */
    function __construct($class = NULL)
    {
        // include path for Zend Framework
        // alter it accordingly if you have put the 'Zend' folder elsewhere
        ini_set('include_path',
        ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries');

        if ($class)
        {
            require_once (string) $class . EXT;
            log_message('debug', "Zend Class $class Loaded");
        }
        else
        {
            log_message('debug', "Zend Class Initialized");
        }
    }

    /**
     * Zend Class Loader
     *
     * @param   string $class class name
     */
    function load($class)
    {
        require_once (string) $class . EXT;
        log_message('debug', "Zend Class $class Loaded");
    }
}

Я надеюсь, что это реальный способ установить Zend Framework в CodeIgniter. Затем в моем контроллере функции я написал следующий код для генерации штрих-кода.

public function product($product_id){
        $pid = filter($product_id);
        if($this->product_model->check_product_by_id($pid)){
            $barcode = $pid;
            $this->load->library('zend');
            $this->zend->load('Zend/Barcode');
            Zend_Barcode::render('code39', 'image', array('text' => $visitor_id), array());
            $imageResource = Zend_Barcode::factory('code128', 'image', array('text'=>$barcode), array())->draw();
            imagepng($imageResource);
        }else{
            $this->session->set_flashdata('error', 'Invalid product parameter');
            redirect('products/all');
            exit();
        }
    }

Но это показывает следующую ошибку

zend library loading error

Я испробовал все доступные в Интернете способы, включая Stackoverflow. Но ничто не помогло мне выйти из этой проблемы. Пожалуйста, помогите мне выйти из этой проблемы.

...