mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 10:07:12 +00:00
fix: warning when call the instance method (#735)
This commit is contained in:
committed by
Barry vd. Heuvel
parent
3d7f124089
commit
190bf07c05
@@ -36,7 +36,10 @@ namespace <?= $namespace == '__root' ? '' : trim($namespace, '\\') ?> {
|
|||||||
//Method inherited from <?= $method->getDeclaringClass() ?>
|
//Method inherited from <?= $method->getDeclaringClass() ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRoot() ?>::<?= $method->getRealName() ?>(<?= $method->getParams() ?>);
|
<?php if($method->isInstanceCall()):?>
|
||||||
|
/** @var <?=$method->getRoot()?> $instance */
|
||||||
|
<?php endif?>
|
||||||
|
<?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRootMethodCall() ?>;
|
||||||
}
|
}
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
}
|
}
|
||||||
@@ -57,8 +60,11 @@ namespace <?= $namespace == '__root' ? '' : trim($namespace, '\\') ?> {
|
|||||||
|
|
||||||
//Method inherited from <?= $method->getDeclaringClass() ?>
|
//Method inherited from <?= $method->getDeclaringClass() ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRoot() ?>::<?= $method->getRealName() ?>(<?= $method->getParams() ?>);
|
<?php if($method->isInstanceCall()):?>
|
||||||
|
/** @var <?=$method->getRoot()?> $instance */
|
||||||
|
<?php endif?>
|
||||||
|
<?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRootMethodCall() ?>;
|
||||||
}
|
}
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>}
|
<?php endif; ?>}
|
||||||
|
|||||||
+28
-3
@@ -34,6 +34,7 @@ class Method
|
|||||||
protected $interfaces = array();
|
protected $interfaces = array();
|
||||||
protected $real_name;
|
protected $real_name;
|
||||||
protected $return = null;
|
protected $return = null;
|
||||||
|
protected $root;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \ReflectionMethod|\ReflectionFunctionAbstract $method
|
* @param \ReflectionMethod|\ReflectionFunctionAbstract $method
|
||||||
@@ -50,6 +51,9 @@ class Method
|
|||||||
$this->real_name = $method->isClosure() ? $this->name : $method->name;
|
$this->real_name = $method->isClosure() ? $this->name : $method->name;
|
||||||
$this->initClassDefinedProperties($method, $class);
|
$this->initClassDefinedProperties($method, $class);
|
||||||
|
|
||||||
|
//Reference the 'real' function in the declaring class
|
||||||
|
$this->root = '\\' . ltrim($class->getName(), '\\');
|
||||||
|
|
||||||
//Create a DocBlock and serializer instance
|
//Create a DocBlock and serializer instance
|
||||||
$this->initPhpDoc($method);
|
$this->initPhpDoc($method);
|
||||||
|
|
||||||
@@ -66,9 +70,6 @@ class Method
|
|||||||
|
|
||||||
//Make the method static
|
//Make the method static
|
||||||
$this->phpdoc->appendTag(Tag::createInstance('@static', $this->phpdoc));
|
$this->phpdoc->appendTag(Tag::createInstance('@static', $this->phpdoc));
|
||||||
|
|
||||||
//Reference the 'real' function in the declaring class
|
|
||||||
$this->root = '\\' . ltrim($class->getName(), '\\');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,6 +111,26 @@ class Method
|
|||||||
return $this->root;
|
return $this->root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isInstanceCall()
|
||||||
|
{
|
||||||
|
return ! ($this->method->isClosure() || $this->method->isStatic());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRootMethodCall()
|
||||||
|
{
|
||||||
|
if ($this->isInstanceCall()) {
|
||||||
|
return "\$instance->{$this->getRealName()}({$this->getParams()})";
|
||||||
|
} else {
|
||||||
|
return "{$this->getRoot()}::{$this->getRealName()}({$this->getParams()})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the docblock for this method
|
* Get the docblock for this method
|
||||||
*
|
*
|
||||||
@@ -243,6 +264,10 @@ class Method
|
|||||||
// Set the changed content
|
// Set the changed content
|
||||||
$tag->setContent($returnValue . ' ' . $tag->getDescription());
|
$tag->setContent($returnValue . ' ' . $tag->getDescription());
|
||||||
$this->return = $returnValue;
|
$this->return = $returnValue;
|
||||||
|
|
||||||
|
if ($tag->getType() === '$this') {
|
||||||
|
$tag->setType($this->root);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->return = null;
|
$this->return = null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user