2012-11-06 58 views
0

我集成了Zend_Barcode类,将Zend目录放在应用程序/库上。codeigniter + zend条形码类

在我的控制器:

public function barcode_gen() 
    { 
    $this->load->library('Zend/Barcode/Barcode'); 
    $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); 
    $rendererOptions = array(); 
    Zend_Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->render(); 
    } 

但是,这导致到:

Non-existent class: Barcode 

我也看到了很多的教程,但从未想出如何,一些TUTS较为陈旧。

即使我在CI forums上跟着这个帖子,也没有运气。

回答

0

当加载使用$这个 - >负载>库外部类()笨会将类的实例在一个名为像加载的类变量,所以你需要访问方式

既然你“再然后调用其静态相反,我建议丢弃CI装载方法,简单地包括类:

public function barcode_gen() 
{ 
    require_once('./application/libraries/Zend/Barcode/Barcode.php'); 
    //adjust the above path to the correct location 
    $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); 
    $rendererOptions = array(); 
    Zend_Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->render(); 
} 
+0

这不会工作下,它只是返回该错误'致命错误:类“Zend_Barcode”未找到...'[Barcode.php]( http://pastebin.com/2eQuaYZ4)pastebin – fishcracker

+0

我看到类名是Barcode,然后用'Barcode :: factory()'尝试' –

+1

谢谢你的回复队友,但是都没有。这真让我困惑。 – fishcracker

0

只是提一提,达Pirsy(以及其他类似herehere)的代码是Zend的版本信息1而不是版本2. 如果你下载版本2,那么你最终与Fatal error: Class 'Zend_Barcode' not found

我认为这也许可以帮助其他人。

1

我有同样的问题,这就是我做的工作(我使用CI2和ZF2)。首先,整合CI2和ZF2,see this example。而包括Zend的条码命名空间,我barcode_gen功能

function barcode_gen() { 
    $this->load->library('Zend'); 
    $this->zend->load('Zend/Barcode/Barcode'); 

    $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); 
    $rendererOptions = array(); 
    \Zend\Barcode\Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->render(); 
} 

-
UPDATE
我使用的是从this HMVC架构和Loader类是能够加载从Zend的必要文件,这是我barcode_gen

function barcode_gen() { 
    $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); 
    $rendererOptions = array(); 
    \Zend\Barcode\Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->render(); 
} 
+0

我得到了'致命错误:未找到类'Zend \ Barcode \ ObjectPluginManager'。请使用什么版本? ZendF 2.2?我遵循你写的内容,包括你发布的链接。 – Kyslik

+0

我正在使用ZF 2.1.4, 我用ZF 2.2.1替换了我的ZF,它仍然可以工作, 也许我错过了写一些步骤,让我检查 – peculiar

+0

我刚刚意识到我正在使用[此] HMVC体系结构, (http://somethingstatic.com/setting-hmvc-codeigniter-2-1/),Loader类能够从Zend加载必要的文件。我甚至没有必要使用Zend的加载语句(第1行和第2行barcode_gen函数) – peculiar

0

这个怎么样? 了Zend条码库是第三方文件夹

 
function gen_barcode($product_code = NULL, $bcs = 'code39', $height = 60, $text = 1) { 
     $drawText = ($text != 1) ? FALSE : TRUE; 
     $this->load->library('zend'); 
     $this->zend->load('Zend/Barcode'); 
     $barcodeOptions = array('text' => $product_code, 'barHeight' => $height, 'drawText' => $drawText); 
     $rendererOptions = array('imageType' => 'png', 'horizontalPosition' => 'center', 'verticalPosition' => 'middle'); 
     $imageResource = Zend_Barcode::render($bcs, 'image', $barcodeOptions, $rendererOptions); 
     return $imageResource; 

    }