mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 18:13:11 +00:00
Allow adding custom Macroable classes. (#1629)
* Allow adding custom Macroable classes. * Remove duplication, tweak config * Remove test --------- Co-authored-by: Barry vd. Heuvel <[email protected]>
This commit is contained in:
co-authored by
Barry vd. Heuvel
parent
beda399e7e
commit
05d9c3cd65
+5
-3
@@ -46,6 +46,8 @@ class Alias
|
||||
protected $phpdoc = null;
|
||||
protected $classAliases = [];
|
||||
|
||||
protected $isMacroable = false;
|
||||
|
||||
/** @var ConfigRepository */
|
||||
protected $config;
|
||||
|
||||
@@ -60,12 +62,13 @@ class Alias
|
||||
* @param array $magicMethods
|
||||
* @param array $interfaces
|
||||
*/
|
||||
public function __construct($config, $alias, $facade, $magicMethods = [], $interfaces = [])
|
||||
public function __construct($config, $alias, $facade, $magicMethods = [], $interfaces = [], $isMacroable = false)
|
||||
{
|
||||
$this->alias = $alias;
|
||||
$this->magicMethods = $magicMethods;
|
||||
$this->interfaces = $interfaces;
|
||||
$this->config = $config;
|
||||
$this->isMacroable = $isMacroable;
|
||||
|
||||
// Make the class absolute
|
||||
$facade = '\\' . ltrim($facade, '\\');
|
||||
@@ -395,8 +398,7 @@ class Alias
|
||||
|
||||
// Check if the class is macroable
|
||||
// (Eloquent\Builder is also macroable but doesn't use Macroable trait)
|
||||
$traits = collect($reflection->getTraitNames());
|
||||
if ($traits->contains('Illuminate\Support\Traits\Macroable') || $class === EloquentBuilder::class) {
|
||||
if ($this->isMacroable || $class === EloquentBuilder::class) {
|
||||
$properties = $reflection->getStaticProperties();
|
||||
$macros = isset($properties['macros']) ? $properties['macros'] : [];
|
||||
foreach ($macros as $macro_name => $macro_func) {
|
||||
|
||||
Reference in New Issue
Block a user