Login   Register  
PHP Classes
elePHPant
Icontem

File: TypedStruct.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Tom Schaefer  >  TypeSafeStruct  >  TypedStruct.class.php  >  Download  
File: TypedStruct.class.php
Role: Class source
Content type: text/plain
Description: Base class
Class: TypeSafeStruct
Manipulate type safe objects
Author: By
Last change: chg
Date: 2009-03-18 15:17
Size: 1,537 bytes
 

Contents

Class file image Download
<?php
/**
 * @author Thomas Schaefer
 * @mail scaphare@gmail.com
*/
class TypedStruct
{

    private 
$activeClass "";

    
/**
     * TypedStructProperties
     * @var static array
     */
    
private static $TypedStructProperties = array();


    
/**
     * hasProperty
     *
     * @param string $k
     * @return bool
     *
     */
    
public function hasProperty($k) {
        
$r = new ReflectionClass($this);
        
$this->activeClass $r->name;
        if(!isset(
TypedStruct::$TypedStructProperties[$this->activeClass])){
            foreach(
$r->getProperties() as $p){
                
$a=substr($p->name,strpos($p->name,"_")+1);
                
$b=substr($p->name,0,strpos($p->name,"_"));
                if(
strlen($b)) TypedStruct::$TypedStructProperties[$this->activeClass][$a] = $b;
            }
        }
        return 
array_key_exists$kTypedStruct::$TypedStructProperties[$this->activeClass] );
    }


    
/**
     * getPropertyType
     *
     * @param string $k
     * @return string return type of object property type
     *
     */
    
public function getPropertyType($k) {

        if (!
array_key_exists$kTypedStruct::$TypedStructProperties[$this->activeClass] )) {
            return 
false;
        }
        return 
TypedStruct::$TypedStructProperties[$this->activeClass][$k];
    }


    
/**
     * getProperties
     * @desc used by SerializeTypedStruct
     * @return array
     */
    
public function getProperties(){
        return 
TypedStruct::$TypedStructProperties[$this->activeClass];
    }

    protected function 
__set($key,$value) {
        
$this->{$key} = $value;
    }

    protected function 
__get($key) {
        return 
$this->{$key};
    }

}