toArray(); if (array_key_exists('barcode', $barcode)) { $barcode = $barcode['barcode']; } else { require_once 'Zend/Validate/Exception.php'; throw new Zend_Validate_Exception("Missing option 'barcode'"); } } $this->setType($barcode); } /** * Sets a new barcode validator * * @param string $barcode - Barcode validator to use * @return void * @throws Zend_Validate_Exception */ public function setType($barcode) { switch (strtolower($barcode)) { case 'upc': case 'upc-a': require_once 'Zend/Validate/Barcode/UpcA.php'; $class = 'Zend_Validate_Barcode_UpcA'; break; case 'ean13': case 'ean-13': require_once 'Zend/Validate/Barcode/Ean13.php'; $class = 'Zend_Validate_Barcode_Ean13'; break; default: require_once 'Zend/Validate/Exception.php'; throw new Zend_Validate_Exception("Barcode type '$barcode' is not supported'"); break; } $this->_barcodeValidator = new $class; } /** * Defined by Zend_Validate_Interface * * Returns true if and only if $value contains a valid barcode * * @param string $value * @return boolean */ public function isValid($value) { return call_user_func(array($this->_barcodeValidator, 'isValid'), $value); } }