00001 <?php 00025 require_once 'Zend/Validate/Abstract.php'; 00026 00033 class Zend_Validate_Barcode extends Zend_Validate_Abstract 00034 { 00040 protected $_barcodeValidator; 00041 00049 public function __construct($barcodeType) 00050 { 00051 $this->setType($barcodeType); 00052 } 00053 00061 public function setType($barcodeType) 00062 { 00063 switch (strtolower($barcodeType)) { 00064 case 'upc': 00065 case 'upc-a': 00066 require_once 'Zend/Validate/Barcode/UpcA.php'; 00067 $class = 'Zend_Validate_Barcode_UpcA'; 00068 break; 00069 case 'ean13': 00070 case 'ean-13': 00071 require_once 'Zend/Validate/Barcode/Ean13.php'; 00072 $class = 'Zend_Validate_Barcode_Ean13'; 00073 break; 00074 default: 00075 require_once 'Zend/Validate/Exception.php'; 00076 throw new Zend_Validate_Exception("Barcode type '$barcodeType' is not supported'"); 00077 break; 00078 } 00079 00080 $this->_barcodeValidator = new $class; 00081 } 00082 00091 public function isValid($value) 00092 { 00093 return call_user_func(array($this->_barcodeValidator, 'isValid'), $value); 00094 } 00095 }