mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Include DocBloc’s from classes to allow deeper code inspection (#745)
* Add support to include DocBloc’s from classes to allow further code inspection * Adjust for PSR2 * Additional fix for PSR2
This commit is contained in:
committed by
Barry vd. Heuvel
parent
858dd40844
commit
d00600d769
@@ -193,4 +193,16 @@ return array(
|
|||||||
'integer' => 'int',
|
'integer' => 'int',
|
||||||
'boolean' => 'bool',
|
'boolean' => 'bool',
|
||||||
),
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Include DocBlocks from classes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Include DocBlocks from classes to allow additional code inspection for
|
||||||
|
| magic methods and properties.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'include_class_docblocks' => false,
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|||||||
+19
-3
@@ -10,11 +10,12 @@
|
|||||||
|
|
||||||
namespace Barryvdh\LaravelIdeHelper;
|
namespace Barryvdh\LaravelIdeHelper;
|
||||||
|
|
||||||
|
use ReflectionClass;
|
||||||
use Barryvdh\Reflection\DocBlock;
|
use Barryvdh\Reflection\DocBlock;
|
||||||
use Barryvdh\Reflection\DocBlock\Context;
|
use Barryvdh\Reflection\DocBlock\Context;
|
||||||
use Barryvdh\Reflection\DocBlock\Serializer as DocBlockSerializer;
|
|
||||||
use Barryvdh\Reflection\DocBlock\Tag\MethodTag;
|
use Barryvdh\Reflection\DocBlock\Tag\MethodTag;
|
||||||
use ReflectionClass;
|
use Illuminate\Config\Repository as ConfigRepository;
|
||||||
|
use Barryvdh\Reflection\DocBlock\Serializer as DocBlockSerializer;
|
||||||
|
|
||||||
class Alias
|
class Alias
|
||||||
{
|
{
|
||||||
@@ -35,17 +36,22 @@ class Alias
|
|||||||
protected $interfaces = array();
|
protected $interfaces = array();
|
||||||
protected $phpdoc = null;
|
protected $phpdoc = null;
|
||||||
|
|
||||||
|
/** @var ConfigRepository */
|
||||||
|
protected $config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param ConfigRepository $config
|
||||||
* @param string $alias
|
* @param string $alias
|
||||||
* @param string $facade
|
* @param string $facade
|
||||||
* @param array $magicMethods
|
* @param array $magicMethods
|
||||||
* @param array $interfaces
|
* @param array $interfaces
|
||||||
*/
|
*/
|
||||||
public function __construct($alias, $facade, $magicMethods = array(), $interfaces = array())
|
public function __construct($config, $alias, $facade, $magicMethods = array(), $interfaces = array())
|
||||||
{
|
{
|
||||||
$this->alias = $alias;
|
$this->alias = $alias;
|
||||||
$this->magicMethods = $magicMethods;
|
$this->magicMethods = $magicMethods;
|
||||||
$this->interfaces = $interfaces;
|
$this->interfaces = $interfaces;
|
||||||
|
$this->config = $config;
|
||||||
|
|
||||||
// Make the class absolute
|
// Make the class absolute
|
||||||
$facade = '\\' . ltrim($facade, '\\');
|
$facade = '\\' . ltrim($facade, '\\');
|
||||||
@@ -403,6 +409,16 @@ class Alias
|
|||||||
$serializer = new DocBlockSerializer(1, $prefix);
|
$serializer = new DocBlockSerializer(1, $prefix);
|
||||||
|
|
||||||
if ($this->phpdoc) {
|
if ($this->phpdoc) {
|
||||||
|
if ($this->config->get('ide-helper.include_class_docblocks')) {
|
||||||
|
// if a class doesn't expose any DocBlock tags
|
||||||
|
// we can perform reflection on the class and
|
||||||
|
// add in the original class DocBlock
|
||||||
|
if (count($this->phpdoc->getTags()) === 0) {
|
||||||
|
$class = new ReflectionClass($this->root);
|
||||||
|
$this->phpdoc = new DocBlock($class->getDocComment());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->removeDuplicateMethodsFromPhpDoc();
|
$this->removeDuplicateMethodsFromPhpDoc();
|
||||||
return $serializer->getDocComment($this->phpdoc);
|
return $serializer->getDocComment($this->phpdoc);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -203,7 +203,7 @@ class Generator
|
|||||||
}
|
}
|
||||||
|
|
||||||
$magicMethods = array_key_exists($name, $this->magic) ? $this->magic[$name] : array();
|
$magicMethods = array_key_exists($name, $this->magic) ? $this->magic[$name] : array();
|
||||||
$alias = new Alias($name, $facade, $magicMethods, $this->interfaces);
|
$alias = new Alias($this->config, $name, $facade, $magicMethods, $this->interfaces);
|
||||||
if ($alias->isValid()) {
|
if ($alias->isValid()) {
|
||||||
//Add extra methods, from other classes (magic static calls)
|
//Add extra methods, from other classes (magic static calls)
|
||||||
if (array_key_exists($name, $this->extra)) {
|
if (array_key_exists($name, $this->extra)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user