login consent app sql

This commit is contained in:
2022-05-03 08:54:45 +02:00
parent e7253acfd8
commit f9a6535906
1652 changed files with 187600 additions and 45 deletions

View File

@ -0,0 +1,65 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\PropertyInfo\PhpStan;
/**
* NameScope class adapted from PHPStan code.
*
* @copyright Copyright (c) 2016, PHPStan https://github.com/phpstan/phpstan-src
* @copyright Copyright (c) 2016, Ondřej Mirtes
* @author Baptiste Leduc <baptiste.leduc@gmail.com>
*
* @internal
*/
final class NameScope
{
private $calledClassName;
private $namespace;
/** @var array<string, string> alias(string) => fullName(string) */
private $uses;
public function __construct(string $calledClassName, string $namespace, array $uses = [])
{
$this->calledClassName = $calledClassName;
$this->namespace = $namespace;
$this->uses = $uses;
}
public function resolveStringName(string $name): string
{
if (0 === strpos($name, '\\')) {
return ltrim($name, '\\');
}
$nameParts = explode('\\', $name);
$firstNamePart = $nameParts[0];
if (isset($this->uses[$firstNamePart])) {
if (1 === \count($nameParts)) {
return $this->uses[$firstNamePart];
}
array_shift($nameParts);
return sprintf('%s\\%s', $this->uses[$firstNamePart], implode('\\', $nameParts));
}
if (null !== $this->namespace) {
return sprintf('%s\\%s', $this->namespace, $name);
}
return $name;
}
public function resolveRootClass(): string
{
return $this->resolveStringName($this->calledClassName);
}
}

View File

@ -0,0 +1,70 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\PropertyInfo\PhpStan;
use phpDocumentor\Reflection\Types\ContextFactory;
/**
* @author Baptiste Leduc <baptiste.leduc@gmail.com>
*
* @internal
*/
final class NameScopeFactory
{
public function create(string $calledClassName, string $declaringClassName = null): NameScope
{
$declaringClassName = $declaringClassName ?? $calledClassName;
$path = explode('\\', $calledClassName);
$calledClassName = array_pop($path);
$declaringReflection = new \ReflectionClass($declaringClassName);
[$declaringNamespace, $declaringUses] = $this->extractFromFullClassName($declaringReflection);
$declaringUses = array_merge($declaringUses, $this->collectUses($declaringReflection));
return new NameScope($calledClassName, $declaringNamespace, $declaringUses);
}
private function collectUses(\ReflectionClass $reflection): array
{
$uses = [$this->extractFromFullClassName($reflection)[1]];
foreach ($reflection->getTraits() as $traitReflection) {
$uses[] = $this->extractFromFullClassName($traitReflection)[1];
}
if (false !== $parentClass = $reflection->getParentClass()) {
$uses[] = $this->collectUses($parentClass);
}
return $uses ? array_merge(...$uses) : [];
}
private function extractFromFullClassName(\ReflectionClass $reflection): array
{
$namespace = trim($reflection->getNamespaceName(), '\\');
$fileName = $reflection->getFileName();
if (\is_string($fileName) && is_file($fileName)) {
if (false === $contents = file_get_contents($fileName)) {
throw new \RuntimeException(sprintf('Unable to read file "%s".', $fileName));
}
$factory = new ContextFactory();
$context = $factory->createForNamespace($namespace, $contents);
return [$namespace, $context->getNamespaceAliases()];
}
return [$namespace, []];
}
}