mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Merge pull request #668 from falnyr/final-abstract-class
Added support for abstract/final models.
This commit is contained in:
@@ -15,6 +15,7 @@ use Illuminate\Console\Command;
|
|||||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Filesystem\Filesystem;
|
use Illuminate\Filesystem\Filesystem;
|
||||||
|
use ReflectionClass;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
@@ -185,7 +186,7 @@ class ModelsCommand extends Command
|
|||||||
if (class_exists($name)) {
|
if (class_exists($name)) {
|
||||||
try {
|
try {
|
||||||
// handle abstract classes, interfaces, ...
|
// handle abstract classes, interfaces, ...
|
||||||
$reflectionClass = new \ReflectionClass($name);
|
$reflectionClass = new ReflectionClass($name);
|
||||||
|
|
||||||
if (!$reflectionClass->isSubclassOf('Illuminate\Database\Eloquent\Model')) {
|
if (!$reflectionClass->isSubclassOf('Illuminate\Database\Eloquent\Model')) {
|
||||||
continue;
|
continue;
|
||||||
@@ -597,10 +598,11 @@ class ModelsCommand extends Command
|
|||||||
protected function createPhpDocs($class)
|
protected function createPhpDocs($class)
|
||||||
{
|
{
|
||||||
|
|
||||||
$reflection = new \ReflectionClass($class);
|
$reflection = new ReflectionClass($class);
|
||||||
$namespace = $reflection->getNamespaceName();
|
$namespace = $reflection->getNamespaceName();
|
||||||
$classname = $reflection->getShortName();
|
$classname = $reflection->getShortName();
|
||||||
$originalDoc = $reflection->getDocComment();
|
$originalDoc = $reflection->getDocComment();
|
||||||
|
$keyword = $this->getClassKeyword($reflection);
|
||||||
|
|
||||||
if ($this->reset) {
|
if ($this->reset) {
|
||||||
$phpdoc = new DocBlock('', new Context($namespace));
|
$phpdoc = new DocBlock('', new Context($namespace));
|
||||||
@@ -688,7 +690,7 @@ class ModelsCommand extends Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = "namespace {$namespace}{\n{$docComment}\n\tclass {$classname} extends \Eloquent {}\n}\n\n";
|
$output = "namespace {$namespace}{\n{$docComment}\n\t{$keyword}class {$classname} extends \Eloquent {}\n}\n\n";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -791,4 +793,21 @@ class ModelsCommand extends Command
|
|||||||
$this->setMethod('onlyTrashed', '\Illuminate\Database\Query\Builder|\\' . get_class($model), []);
|
$this->setMethod('onlyTrashed', '\Illuminate\Database\Query\Builder|\\' . get_class($model), []);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ReflectionClass $reflection
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function getClassKeyword(ReflectionClass $reflection)
|
||||||
|
{
|
||||||
|
if ($reflection->isFinal()) {
|
||||||
|
$keyword = 'final ';
|
||||||
|
} elseif ($reflection->isAbstract()) {
|
||||||
|
$keyword = 'abstract ';
|
||||||
|
} else {
|
||||||
|
$keyword = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $keyword;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user