From d4910ee4f556a23aadbe732d3ba9e6c02aa613c1 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Fri, 14 Jun 2013 17:23:37 -0400 Subject: [PATCH] Put back Yii::getObjectVars() and fixed infinite loop in Object::toArray(). --- framework/yii/YiiBase.php | 13 +++++++++++++ framework/yii/base/Object.php | 4 +--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/framework/yii/YiiBase.php b/framework/yii/YiiBase.php index 4f85cae..35dc134 100644 --- a/framework/yii/YiiBase.php +++ b/framework/yii/YiiBase.php @@ -624,6 +624,19 @@ class YiiBase $object->$name = $value; } } + + /** + * Returns the public member variables of an object. + * This method is provided such that we can get the public member variables of an object. + * It is different from "get_object_vars()" because the latter will return private + * and protected variables if it is called within the object itself. + * @param object $object the object to be handled + * @return array the public member variables of the object + */ + public static function getObjectVars($object) + { + return get_object_vars($object); + } } YiiBase::$aliases = array( diff --git a/framework/yii/base/Object.php b/framework/yii/base/Object.php index b7ab710..7724008 100644 --- a/framework/yii/base/Object.php +++ b/framework/yii/base/Object.php @@ -8,7 +8,6 @@ namespace yii\base; use Yii; -use yii\helpers\ArrayHelper; /** * @include @yii/base/Object.md @@ -223,11 +222,10 @@ class Object implements Arrayable /** * Converts the object into an array. * The default implementation will return all public property values as an array. - * However, if the object is traversable, it will return the data obtained by the data iteration. * @return array the array representation of the object */ public function toArray() { - return ArrayHelper::toArray($this, false); + return Yii::getObjectVars($this); } }