summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/TComponent.php28
1 files changed, 27 insertions, 1 deletions
diff --git a/framework/TComponent.php b/framework/TComponent.php
index 2fc0ebff..647653dd 100644
--- a/framework/TComponent.php
+++ b/framework/TComponent.php
@@ -608,8 +608,34 @@ class TComponent
* @package System
* @since 3.0
*/
-class TEnumerable
+class TEnumerable implements Iterator
{
+ private $_enums = array();
+
+ public function __construct() {
+ $reflection = new ReflectionClass($this);
+ $this->_enums = $reflection->getConstants();
+ }
+
+ public function current() {
+ return current($this->_enums);
+ }
+
+ public function key() {
+ return key($this->_enums);
+ }
+
+ public function next() {
+ return next($this->_enums);
+ }
+
+ public function rewind() {
+ reset($this->_enums);
+ }
+
+ public function valid() {
+ return $this->current() !== false;
+ }
}
/**