mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-19 02:23:11 +00:00
Remove php parser (#1644)
* Remove php parser * composer fix-style --------- Co-authored-by: laravel-ide-helper <[email protected]>
This commit is contained in:
co-authored by
laravel-ide-helper
parent
e509790805
commit
9c6380da4a
+13
-24
@@ -17,10 +17,6 @@ use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Facade;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Traits\Macroable;
|
||||
use PhpParser\Lexer\Emulative;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\Namespace_;
|
||||
use PhpParser\Parser\Php7;
|
||||
use ReflectionClass;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
@@ -213,8 +209,10 @@ class Generator
|
||||
foreach ($realTimeFacadeFiles as $file) {
|
||||
try {
|
||||
$name = $this->getFullyQualifiedClassNameInFile($file);
|
||||
$facades[$name] = $name;
|
||||
} catch (\Exception $e) {
|
||||
if ($name) {
|
||||
$facades[$name] = $name;
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -226,26 +224,17 @@ class Generator
|
||||
{
|
||||
$contents = file_get_contents($path);
|
||||
|
||||
$parsers = new Php7(new Emulative());
|
||||
// Match namespace
|
||||
preg_match('/namespace\s+([^;]+);/', $contents, $namespaceMatch);
|
||||
$namespace = isset($namespaceMatch[1]) ? $namespaceMatch[1] : '';
|
||||
|
||||
$parsed = collect($parsers->parse($contents) ?: []);
|
||||
// Match class name
|
||||
preg_match('/class\s+([a-zA-Z0-9_]+)/', $contents, $classMatch);
|
||||
$className = isset($classMatch[1]) ? $classMatch[1] : '';
|
||||
|
||||
$namespace = $parsed->first(function ($node) {
|
||||
return $node instanceof Namespace_;
|
||||
});
|
||||
|
||||
if ($namespace) {
|
||||
$name = $namespace->name->toString();
|
||||
|
||||
$class = collect($namespace->stmts)->first(function ($node) {
|
||||
return $node instanceof Class_;
|
||||
});
|
||||
|
||||
if ($class) {
|
||||
$name .= '\\' . $class->name->toString();
|
||||
}
|
||||
|
||||
return $name;
|
||||
// Combine namespace and class name
|
||||
if ($namespace && $className) {
|
||||
return $namespace . '\\' . $className;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user