[ Index ]

PHP Cross Reference of Akelos Framework

title

Body

[close]

/ -> AkType.php (source)

   1  <?php
   2  require_once (AK_LIB_DIR.DS.'AkObject.php');
   3  
   4  class AkType extends AkObject
   5  {
   6      var $value;
   7      function __construct($value)
   8      {
   9          $this->value = $value;
  10          require_once ('AkInflector.php');
  11      }
  12      function toString()
  13      {
  14          return $this->value.'';
  15      }
  16      function getValue()
  17      {
  18          return $this->value;
  19      }
  20      function inspect()
  21      {
  22          return var_export($this->value, true);
  23      }
  24      
  25      function blank()
  26      {
  27          return empty($this->value);
  28      }
  29  }
  30  require_once (AK_LIB_DIR.DS.'AkType'.DS.'AkNumber.php');
  31  require_once (AK_LIB_DIR.DS.'AkType'.DS.'AkString.php');
  32  require_once (AK_LIB_DIR.DS.'AkType'.DS.'AkTime.php');
  33  require_once (AK_LIB_DIR.DS.'AkType'.DS.'AkArray.php');
  34  /**require_once(AK_LIB_DIR.DS.'AkType'.DS.'AkDate.php');
  35  */
  36  
  37  function &AkT($param,$command=null)
  38  {
  39      $type = gettype($param);
  40      switch ($type) {
  41          case 'array':
  42              $obj = &new AkArray($param);
  43              break;
  44          case 'integer':
  45              $obj = &new AkNumber($param);
  46              break;
  47          case 'string':
  48          default:
  49              $obj = &new AkString($param);
  50              break;
  51      }
  52      if ($command!=null) {
  53          $items = preg_split('/\./',$command);
  54          $prepend = '';
  55          while($item = array_shift($items)) {
  56              $item = $prepend.$item;
  57              $args = array();
  58              preg_match('/([a-zA-Z_])+(\(.*?\)){0,1}/',$item,$matches);
  59              if (isset($matches[2])) {
  60                  $item = str_replace($matches[2],'',$item);
  61                  $args = preg_split('/\s*,\s*/',trim($matches[2],'()'));
  62              }
  63              if (method_exists($obj,$item)) {
  64                  
  65                  
  66                  if (empty($args)) {
  67                      $obj = $obj->$item();
  68                  } else {
  69                      $obj = call_user_func_array(array(&$obj,$item),$args);
  70                  }
  71                  $prepend = '';
  72              } else {
  73                  $prepend = $item.$prepend;
  74              }
  75              
  76          }
  77          if (is_object($obj) && method_exists($obj,'getValue')) {
  78              $obj = $obj->getValue();
  79          }
  80      }
  81      return $obj;
  82  }
  83  
  84  
  85  
  86  ?>


Generated: Mon Oct 27 12:43:49 2008 Cross-referenced by PHPXref 0.6