Overview

Namespaces

  • Jyxo
    • Beholder
      • TestCase
    • Gettext
      • Parser
    • Input
      • Chain
      • Filter
      • Validator
    • Mail
      • Email
        • Attachment
      • Parser
      • Sender
    • Rpc
      • Json
      • Xml
    • Shell
    • Spl
    • Svn
    • Time
    • Webdav
  • PHP

Classes

  • AbstractValidator
  • Callback
  • Equals
  • InArray
  • IsArray
  • IsBankAccountNumber
  • IsBirthNumber
  • IsCompanyId
  • IsCountryCode
  • IsDate
  • IsDateTime
  • IsEmail
  • IsIban
  • IsInt
  • IsIpV4
  • IsIpV6
  • IsNumeric
  • IsPhone
  • IsTaxId
  • IsUrl
  • IsZipCode
  • LessThan
  • NotEmpty
  • Regex
  • StringLengthBetween
  • StringLengthGreaterThan
  • StringLengthLessThan
  • Upload

Interfaces

  • ErrorMessage

Exceptions

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