Remove php parser (#1644)

* Remove php parser

* composer fix-style

---------

Co-authored-by: laravel-ide-helper <[email protected]>
This commit is contained in:
Barry vd. Heuvel
2024-12-30 12:42:35 +01:00
committed by GitHub
co-authored by laravel-ide-helper
parent e509790805
commit 9c6380da4a
5 changed files with 16 additions and 207 deletions
+13 -24
View File
@@ -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;
}
}