Проблема: отображение штрих–кодов в CodeIgniter с помощью штрих-кода библиотеки Zend.
Я googled, а также пробовал все учебники на первых 2 страницах. Я stackoverflowed и нашел несколько вопросов по моей проблеме, даже немногие отмечены как ответ, но не повезло.
Наконец, я попробовал это https://stackoverflow.com/a/15480779/1564365, но еще одно сообщение об ошибке.
ошибка:
Fatal error: Class 'Zend\Barcode\ObjectPluginManager' not found
это означает, что он фактически загружает библиотеку штрих-кодов, но с ошибкой.
sidenote : ZF 2.2 fresh download (сегодня), CI 2.1.3 скачать (сегодня)
Чтобы решить эту проблему, я вынужден использовать ZF1. шаг за шагом:
Zend
в ./libraries
скопируйте ее в application/libraries
CI application/libraries/Zend.php
"загрузчик для ZF" с кодом следующим образом
<?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"); } }
и контроллеры должны быть следующими
function barcode() { $this->load->library('zend'); $this->zend->load('Zend/Barcode'); $test = Zend_Barcode::draw('ean8', 'image', array('text' => '1234565'), array()); var_dump($test); imagejpeg($test, 'barcode.jpg', 100); }
-function barcode() { $this->load->library('zend'); $this->zend->load('Zend/Barcode'); $test = Zend_Barcode::draw('ean8', 'image', array('text' => '1234565'), array()); var_dump($test); imagejpeg($test, 'barcode.jpg', 100); }