Bring back changes

Missed them from previous commit
This commit is contained in:
Barry vd. Heuvel
2015-08-10 20:38:57 +02:00
parent e7ee934bb1
commit 326e8ea25f
+24 -16
View File
@@ -63,6 +63,7 @@ class ModelsCommand extends Command
parent::__construct();
$this->files = $files;
}
/**
* Execute the console command.
*
@@ -193,6 +194,7 @@ class ModelsCommand extends Command
$this->getPropertiesFromMethods($model);
$output .= $this->createPhpDocs($name);
$ignore[] = $name;
} catch (\Exception $e) {
$this->error("Exception: " . $e->getMessage() . "\nCould not analyze class $name.");
}
@@ -347,6 +349,7 @@ class ModelsCommand extends Command
$code .= $file->current();
$file->next();
}
$code = trim(preg_replace('/\s\s+/', '', $code));
$begin = strpos($code, 'function(');
$code = substr($code, $begin, strrpos($code, '}') - $begin + 1);
@@ -362,24 +365,29 @@ class ModelsCommand extends Command
$search = '$this->' . $relation . '(';
if ($pos = stripos($code, $search)) {
$code = substr($code, $pos + strlen($search));
$arguments = explode(',', substr($code, 0, strpos($code, ')')));
//Remove quotes, ensure 1 \ in front of the model
$returnModel = $this->getClassName($arguments[0], $model);
if ($relation === "belongsToMany" or $relation === 'hasMany' or $relation === 'morphMany' or $relation === 'morphToMany') {
//Collection or array of models (because Collection is Arrayable)
$this->setProperty(
$method,
'\Illuminate\Database\Eloquent\Collection|' . $returnModel . '[]',
true,
null
);
} else {
//Single model is returned
$this->setProperty($method, $returnModel, true, null);
$end = strpos($code, ')->') ?:strpos($code, ');');
if (false !== $end) {
$arguments = substr($code, 0, $end);
$arguments = array_map(function($item) {
return trim($item, ' \'\"');
}, explode(',', $arguments));
//Remove quotes, ensure 1 \ in front of the model
$returnModel = $this->getClassName($arguments[0], $model);
if ($relation === "belongsToMany" or $relation === 'hasMany' or $relation === 'morphMany' or $relation === 'morphToMany') {
//Collection or array of models (because Collection is Arrayable)
$this->setProperty(
$method,
'\Illuminate\Database\Eloquent\Collection|' . $returnModel . '[]',
true,
null
);
} else {
//Single model is returned
$this->setProperty($method, $returnModel, true, null);
}
}
}
}
}
}
}
@@ -549,7 +557,7 @@ class ModelsCommand extends Command
{
// If the class name was resolved via get_class($this) or static::class
if (strpos($className, 'get_class($this)') !== false || strpos($className, 'static::class') !== false) {
return get_class($model);
return "\\" . get_class($model);
}
// If the class name was resolved via ::class (PHP 5.5+)