Overview

Packages

  • Jyxo_Beholder
  • Jyxo_Charset
  • Jyxo_Color
  • Jyxo_Css
  • Jyxo_ErrorHandling
  • Jyxo_FirePhp
  • Jyxo_Gettext
    • Parser
  • Jyxo_Html
  • Jyxo_Input
    • Chain
    • Filter
    • Validator
  • Jyxo_Mail
    • Email
    • Parser
    • Sender
  • Jyxo_Rpc
    • Json
    • Xml
  • Jyxo_Shell
  • Jyxo_SpamFilter
  • Jyxo_Spl
  • Jyxo_String
  • Jyxo_Svn
  • Jyxo_Time
  • Jyxo_Timer
  • Jyxo_Webdav
  • Jyxo_XmlReader
  • PHP

Classes

  • Jyxo_Input_Validator
  • Jyxo_Input_Validator_AbstractValidator
  • Jyxo_Input_Validator_Callback
  • Jyxo_Input_Validator_Equals
  • Jyxo_Input_Validator_InArray
  • Jyxo_Input_Validator_IsArray
  • Jyxo_Input_Validator_IsBankAccountNumber
  • Jyxo_Input_Validator_IsBirthNumber
  • Jyxo_Input_Validator_IsCompanyId
  • Jyxo_Input_Validator_IsCountryCode
  • Jyxo_Input_Validator_IsDate
  • Jyxo_Input_Validator_IsDateTime
  • Jyxo_Input_Validator_IsEmail
  • Jyxo_Input_Validator_IsIban
  • Jyxo_Input_Validator_IsInt
  • Jyxo_Input_Validator_IsIpV4
  • Jyxo_Input_Validator_IsIpV6
  • Jyxo_Input_Validator_IsNumeric
  • Jyxo_Input_Validator_IsPhone
  • Jyxo_Input_Validator_IsTaxId
  • Jyxo_Input_Validator_IsUrl
  • Jyxo_Input_Validator_IsZipCode
  • Jyxo_Input_Validator_LessThan
  • Jyxo_Input_Validator_NotEmpty
  • Jyxo_Input_Validator_Regex
  • Jyxo_Input_Validator_StringLengthBetween
  • Jyxo_Input_Validator_StringLengthGreaterThan
  • Jyxo_Input_Validator_StringLengthLessThan
  • Jyxo_Input_Validator_Upload

Interfaces

  • Jyxo_Input_Validator_ErrorMessage
  • Jyxo_Input_ValidatorInterface

Exceptions

  • Jyxo_Input_Validator_Exception
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  1: <?php
  2: 
  3: /**
  4:  * Jyxo PHP Library
  5:  *
  6:  * LICENSE
  7:  *
  8:  * This source file is subject to the new BSD license that is bundled
  9:  * with this package in the file license.txt.
 10:  * It is also available through the world-wide-web at this URL:
 11:  * https://github.com/jyxo/php/blob/master/license.txt
 12:  */
 13: 
 14: /**
 15:  * Validates a value using a custom callback or anonymous function.
 16:  *
 17:  * @category Jyxo
 18:  * @package Jyxo_Input
 19:  * @subpackage Validator
 20:  * @copyright Copyright (c) 2005-2011 Jyxo, s.r.o.
 21:  * @license https://github.com/jyxo/php/blob/master/license.txt
 22:  * @author Ondřej Nešpor
 23:  */
 24: class Jyxo_Input_Validator_Callback extends Jyxo_Input_Validator_AbstractValidator
 25: {
 26: 
 27:     /**
 28:      * Validation callback.
 29:      *
 30:      * @var string|array|Closure
 31:      */
 32:     private $callback;
 33: 
 34:     /**
 35:      * Additional callback parameters.
 36:      *
 37:      * @var array
 38:      */
 39:     private $additionalParams = array();
 40: 
 41:     /**
 42:      * Constructor.
 43:      *
 44:      * Optinally accepts additional parameters that will be used as additional callback parameters.
 45:      * The validated value will allways be used as the callback's first parameter.
 46:      *
 47:      * @param string|array|Closure $callback Validation callback
 48:      */
 49:     public function __construct($callback)
 50:     {
 51:         $this->setCallback($callback);
 52:         $this->setAdditionalParams(array_slice(func_get_args(), 1));
 53:     }
 54: 
 55:     /**
 56:      * Sets the validation callback.
 57:      *
 58:      * @param string|array|Closure $callback Validation callback
 59:      * @return Jyxo_Input_Validator_Callback
 60:      * @throws Jyxo_Input_Validator_Exception On invalid callback definition
 61:      */
 62:     public function setCallback($callback)
 63:     {
 64:         if (is_string($callback) || is_array($callback)) {
 65:             if (!is_callable($callback)) {
 66:                 throw new Jyxo_Input_Validator_Exception('Invalid callback definition');
 67:             }
 68:         } elseif (!is_object($callback) || !$callback instanceof Closure) {
 69:             throw new Jyxo_Input_Validator_Exception('Invalid callback type; only string, array and Closure instance are allowed');
 70:         }
 71: 
 72:         $this->callback = $callback;
 73: 
 74:         return $this;
 75:     }
 76: 
 77:     /**
 78:      * Returns the validation callback.
 79:      *
 80:      * @return string|array|Closure
 81:      */
 82:     public function getCallback()
 83:     {
 84:         return $this->callback;
 85:     }
 86: 
 87:     /**
 88:      * Sets additional validation callback parameters.
 89:      *
 90:      * @param array $params Parameters array
 91:      * @return Jyxo_Input_Validator_Callback
 92:      */
 93:     public function setAdditionalParams(array $params = array())
 94:     {
 95:         $this->additionalParams = $params;
 96: 
 97:         return $this;
 98:     }
 99: 
100:     /**
101:      * Returns additional validation callback parameters.
102:      *
103:      * @return array
104:      */
105:     public function getAdditionalParams()
106:     {
107:         return $this->additionalParams;
108:     }
109: 
110:     /**
111:      * Validates a value.
112:      *
113:      * @param mixed $value Input value
114:      * @return boolean
115:      */
116:     public function isValid($value)
117:     {
118:         $params = $this->additionalParams;
119:         array_unshift($params, $value);
120:         return call_user_func_array($this->callback, $params);
121:     }
122: 
123: }
124: 
Jyxo PHP Library API documentation generated by ApiGen 2.3.0