public function __get($name)
{
if (method_exists($this, $getter = 'get' . $name)) {
// getting a property
return $this->{$getter}();
} else {
if (method_exists($this, $jsgetter = 'getjs' . $name)) {
// getting a javascript property
return (string) $this->{$jsgetter}();
} else {
if (strncasecmp($name, 'on', 2) === 0 && method_exists($this, $name)) {
// getting an event (handler list)
$name = strtolower($name);
if (!isset($this->_e[$name])) {
$this->_e[$name] = new TPriorityList();
}
return $this->_e[$name];
} else {
if (strncasecmp($name, 'fx', 2) === 0) {
// getting a global event (handler list)
$name = strtolower($name);
if (!isset(self::$_ue[$name])) {
self::$_ue[$name] = new TPriorityList();
}
return self::$_ue[$name];
} else {
if ($this->_behaviorsenabled) {
// getting a behavior property/event (handler list)
if (isset($this->_m[$name])) {
return $this->_m[$name];
} else {
if ($this->_m !== null) {
foreach ($this->_m->toArray() as $behavior) {
if ((!$behavior instanceof IBehavior || $behavior->getEnabled()) && (property_exists($behavior, $name) || $behavior->canGetProperty($name) || $behavior->hasEvent($name))) {
return $behavior->{$name};
}
}
}
}
}
}
}
}
}
throw new TInvalidOperationException('component_property_undefined', get_class($this), $name);
}