mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 10:07:12 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39c148ad42 | ||
|
|
2b3c9a2449 | ||
|
|
725711022b | ||
|
|
881f77156c | ||
|
|
0fad511954 |
+2
-1
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
namespace Barryvdh\LaravelIdeHelper;
|
namespace Barryvdh\LaravelIdeHelper;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
use ReflectionClass;
|
use ReflectionClass;
|
||||||
use Barryvdh\Reflection\DocBlock;
|
use Barryvdh\Reflection\DocBlock;
|
||||||
use Barryvdh\Reflection\DocBlock\Context;
|
use Barryvdh\Reflection\DocBlock\Context;
|
||||||
@@ -395,7 +396,7 @@ class Alias
|
|||||||
return new \ReflectionMethod($macro_func[0], $macro_func[1]);
|
return new \ReflectionMethod($macro_func[0], $macro_func[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_object($macro_func) && is_callable($macro_func)) {
|
if (is_object($macro_func) && is_callable($macro_func) && !$macro_func instanceof Closure) {
|
||||||
return new \ReflectionMethod($macro_func, '__invoke');
|
return new \ReflectionMethod($macro_func, '__invoke');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class MetaCommand extends Command
|
|||||||
protected function registerClassAutoloadExceptions()
|
protected function registerClassAutoloadExceptions()
|
||||||
{
|
{
|
||||||
spl_autoload_register(function ($class) {
|
spl_autoload_register(function ($class) {
|
||||||
throw new \Exception("Class '$class' not found.");
|
throw new \ReflectionException("Class '$class' not found.");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -446,14 +446,17 @@ class ModelsCommand extends Command
|
|||||||
}
|
}
|
||||||
} elseif (in_array($method, ['query', 'newQuery', 'newModelQuery'])) {
|
} elseif (in_array($method, ['query', 'newQuery', 'newModelQuery'])) {
|
||||||
$reflection = new \ReflectionClass($model);
|
$reflection = new \ReflectionClass($model);
|
||||||
$this->setMethod($method, '\Illuminate\Database\Eloquent\Builder|\\' . $reflection->getName());
|
|
||||||
|
$builder = get_class($model->newModelQuery());
|
||||||
|
|
||||||
|
$this->setMethod($method, "\\{$builder}|\\" . $reflection->getName());
|
||||||
} elseif (!method_exists('Illuminate\Database\Eloquent\Model', $method)
|
} elseif (!method_exists('Illuminate\Database\Eloquent\Model', $method)
|
||||||
&& !Str::startsWith($method, 'get')
|
&& !Str::startsWith($method, 'get')
|
||||||
) {
|
) {
|
||||||
//Use reflection to inspect the code, based on Illuminate/Support/SerializableClosure.php
|
//Use reflection to inspect the code, based on Illuminate/Support/SerializableClosure.php
|
||||||
$reflection = new \ReflectionMethod($model, $method);
|
$reflection = new \ReflectionMethod($model, $method);
|
||||||
// php 7.x type or fallback to docblock
|
// php 7.x type or fallback to docblock
|
||||||
$type = (string) $reflection->getReturnType() ?: $this->getReturnTypeFromDocBlock($reflection);
|
$type = (string) $reflection->getReturnType() ?: (string)$this->getReturnTypeFromDocBlock($reflection);
|
||||||
|
|
||||||
$file = new \SplFileObject($reflection->getFileName());
|
$file = new \SplFileObject($reflection->getFileName());
|
||||||
$file->seek($reflection->getStartLine() - 1);
|
$file->seek($reflection->getStartLine() - 1);
|
||||||
@@ -480,7 +483,7 @@ class ModelsCommand extends Command
|
|||||||
'morphedByMany' => '\Illuminate\Database\Eloquent\Relations\MorphToMany'
|
'morphedByMany' => '\Illuminate\Database\Eloquent\Relations\MorphToMany'
|
||||||
) as $relation => $impl) {
|
) as $relation => $impl) {
|
||||||
$search = '$this->' . $relation . '(';
|
$search = '$this->' . $relation . '(';
|
||||||
if (stripos($code, $search) || stripos($impl, $type) !== false) {
|
if (stripos($code, $search) || stripos($impl, (string)$type) !== false) {
|
||||||
//Resolve the relation's model to a Relation object.
|
//Resolve the relation's model to a Relation object.
|
||||||
$methodReflection = new \ReflectionMethod($model, $method);
|
$methodReflection = new \ReflectionMethod($model, $method);
|
||||||
if ($methodReflection->getNumberOfParameters()) {
|
if ($methodReflection->getNumberOfParameters()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user