Merge pull request #696 from creocoder/ar-getnamespacedclass-static

Make ActiveRecord::getNamespacedClass() static
This commit is contained in:
Alexander Makarov
2013-07-31 13:27:49 -07:00

View File

@@ -440,7 +440,7 @@ class ActiveRecord extends Model
public function hasOne($class, $link) public function hasOne($class, $link)
{ {
return new ActiveRelation(array( return new ActiveRelation(array(
'modelClass' => $this->getNamespacedClass($class), 'modelClass' => static::getNamespacedClass($class),
'primaryModel' => $this, 'primaryModel' => $this,
'link' => $link, 'link' => $link,
'multiple' => false, 'multiple' => false,
@@ -478,7 +478,7 @@ class ActiveRecord extends Model
public function hasMany($class, $link) public function hasMany($class, $link)
{ {
return new ActiveRelation(array( return new ActiveRelation(array(
'modelClass' => $this->getNamespacedClass($class), 'modelClass' => static::getNamespacedClass($class),
'primaryModel' => $this, 'primaryModel' => $this,
'link' => $link, 'link' => $link,
'multiple' => true, 'multiple' => true,
@@ -1400,10 +1400,10 @@ class ActiveRecord extends Model
* @param string $class the class name to be namespaced * @param string $class the class name to be namespaced
* @return string the namespaced class name * @return string the namespaced class name
*/ */
protected function getNamespacedClass($class) protected static function getNamespacedClass($class)
{ {
if (strpos($class, '\\') === false) { if (strpos($class, '\\') === false) {
$reflector = new \ReflectionClass($this); $reflector = new \ReflectionClass(static::className());
return $reflector->getNamespaceName() . '\\' . $class; return $reflector->getNamespaceName() . '\\' . $class;
} else { } else {
return $class; return $class;