Overview

Namespaces

  • PHP
  • PhpOptions
    • Types

Classes

  • AType
  • CharType
  • DatetimeType
  • DateType
  • DirectoryType
  • EmailType
  • EnumType
  • FileType
  • InifileType
  • IntegerType
  • RealType
  • SeriesType
  • StringType
  • TimeType
  • Types
  • Overview
  • Namespace
  • Class
  • Tree
  • Todo
  1: <?php
  2: 
  3: /**
  4:  * PhpOptions
  5:  * @link https://github.com/masicek/PhpOptions
  6:  * @author Viktor Mašíček <viktor@masicek.net>
  7:  * @license "New" BSD License
  8:  */
  9: 
 10: namespace PhpOptions\Types;
 11: 
 12: /**
 13:  * Abstract type with default functions
 14:  *
 15:  * @author Viktor Mašíček <viktor@masicek.net>
 16:  */
 17: abstract class AType
 18: {
 19: 
 20:     /**
 21:      * Flag of using filer on value
 22:      *
 23:      * @var bool
 24:      */
 25:     protected $useFilter = TRUE;
 26: 
 27: 
 28:     /**
 29:      * Set object
 30:      *
 31:      * @param array $setting Array of setting of object
 32:      */
 33:     public function __construct(&$settings = array())
 34:     {
 35:         if ($this->settingsHasFlag('notFilter', $settings))
 36:         {
 37:             $this->useFilter = FALSE;
 38:         }
 39:     }
 40: 
 41: 
 42:     /**
 43:      * Check type of value.
 44:      *
 45:      * @param mixed $value Checked value
 46:      *
 47:      * @return bool
 48:      */
 49:     public function check($value)
 50:     {
 51:         return TRUE;
 52:     }
 53: 
 54: 
 55:     /**
 56:      * Return uppercase name of type
 57:      *
 58:      * @return string
 59:      */
 60:     public function getName()
 61:     {
 62:         $className = get_class($this);
 63:         $start = strrpos($className, '\\') + 1;
 64:         $name = substr($className, $start, -4);
 65:         return strtoupper($name);
 66:     }
 67: 
 68: 
 69:     /**
 70:      * Return modified value, if flag useFiletr is set on TRUE.
 71:      *
 72:      * @param mixed $value Filtered value
 73:      *
 74:      * @return mixed
 75:      */
 76:     final public function filter($value)
 77:     {
 78:         if ($this->useFilter)
 79:         {
 80:             return $this->useFilter($value);
 81:         }
 82:         else
 83:         {
 84:             return $value;
 85:         }
 86:     }
 87: 
 88: 
 89:     /**
 90:      * Return modified value
 91:      *
 92:      * @param mixed $value Filtered value
 93:      *
 94:      * @return mixed
 95:      */
 96:     protected function useFilter($value)
 97:     {
 98:         return $value;
 99:     }
100: 
101: 
102:     /**
103:      * Return that settings has set flag (case insensitive).
104:      *
105:      * @param type $flag Searched flag
106:      * @param array $settings Array of setting of object
107:      *
108:      * @return boolean
109:      */
110:     protected function settingsHasFlag($flag, &$settings)
111:     {
112:         $flag = strtolower($flag);
113:         $settingsLower = $settings;
114:         array_walk($settingsLower, function (&$item, $key) {
115:             if (is_string($item))
116:             {
117:                 $item = strtolower($item);
118:             }
119:         });
120:         $flagIdx = array_search($flag, $settingsLower);
121:         if ($flagIdx !== FALSE)
122:         {
123:             $hasFlag = TRUE;
124:             // remove flag
125:             unset($settings[$flagIdx]);
126:             // reset indexing
127:             $settings = array_values($settings);
128:         }
129:         else
130:         {
131:             $hasFlag = FALSE;
132:         }
133: 
134:         return $hasFlag;
135:     }
136: 
137: 
138: }
139: 
PhpOptions API documentation generated by ApiGen.
Generated using the TokenReflection library.