mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Configurable macro return type defaults (#1711)
This commit is contained in:
+7
-3
@@ -57,9 +57,13 @@ class Generator
|
||||
// Find the drivers to add to the extra/interfaces
|
||||
$this->detectDrivers();
|
||||
|
||||
$this->extra = array_merge($this->extra, $this->config->get('ide-helper.extra'), []);
|
||||
$this->magic = array_merge($this->magic, $this->config->get('ide-helper.magic'), []);
|
||||
$this->interfaces = array_merge($this->interfaces, $this->config->get('ide-helper.interfaces'), []);
|
||||
$this->extra = array_merge($this->extra, $this->config->get('ide-helper.extra', []));
|
||||
$this->magic = array_merge($this->magic, $this->config->get('ide-helper.magic', []));
|
||||
$this->interfaces = array_merge($this->interfaces, $this->config->get('ide-helper.interfaces', []));
|
||||
Macro::setDefaultReturnTypes($this->config->get('ide-helper.macro_default_return_types', [
|
||||
\Illuminate\Http\Client\Factory::class => \Illuminate\Http\Client\PendingRequest::class,
|
||||
]));
|
||||
|
||||
// Make all interface classes absolute
|
||||
foreach ($this->interfaces as &$interface) {
|
||||
$interface = '\\' . ltrim($interface, '\\');
|
||||
|
||||
+7
-6
@@ -5,14 +5,11 @@ namespace Barryvdh\LaravelIdeHelper;
|
||||
use Barryvdh\Reflection\DocBlock;
|
||||
use Barryvdh\Reflection\DocBlock\Tag;
|
||||
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||
use Illuminate\Http\Client\PendingRequest;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class Macro extends Method
|
||||
{
|
||||
protected $macroDefaults = [
|
||||
\Illuminate\Http\Client\Factory::class => PendingRequest::class,
|
||||
];
|
||||
protected static $macroDefaults = [];
|
||||
|
||||
/**
|
||||
* Macro constructor.
|
||||
@@ -37,6 +34,10 @@ class Macro extends Method
|
||||
parent::__construct($method, $alias, $class, $methodName, $interfaces, $classAliases, $returnTypeNormalizers);
|
||||
}
|
||||
|
||||
public static function setDefaultReturnTypes(array $map = [])
|
||||
{
|
||||
static::$macroDefaults = array_merge(static::$macroDefaults, $map);
|
||||
}
|
||||
/**
|
||||
* @param \ReflectionFunctionAbstract $method
|
||||
*/
|
||||
@@ -84,8 +85,8 @@ class Macro extends Method
|
||||
}
|
||||
|
||||
$class = ltrim($this->declaringClassName, '\\');
|
||||
if (!$this->phpdoc->hasTag('return') && isset($this->macroDefaults[$class])) {
|
||||
$type = $this->macroDefaults[$class];
|
||||
if (!$this->phpdoc->hasTag('return') && isset(static::$macroDefaults[$class])) {
|
||||
$type = static::$macroDefaults[$class];
|
||||
$this->phpdoc->appendTag(Tag::createInstance("@return {$type}"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user