1
0
mirror of https://github.com/flarum/core.git synced 2025-07-26 11:10:41 +02:00
Files
php-flarum/php-packages/phpstan/src/Methods/Pipes/Managers.php
2021-12-28 20:45:22 -05:00

57 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Flarum\PHPStan\Methods\Pipes;
use Closure;
use Illuminate\Support\Manager;
use InvalidArgumentException;
use Flarum\PHPStan\Concerns;
use Flarum\PHPStan\Contracts\Methods\PassableContract;
use Flarum\PHPStan\Contracts\Methods\Pipes\PipeContract;
/**
* @internal
*/
final class Managers implements PipeContract
{
use Concerns\HasContainer;
/**
* {@inheritdoc}
*/
public function handle(PassableContract $passable, Closure $next): void
{
$classReflection = $passable->getClassReflection();
$found = false;
if ($classReflection->isSubclassOf(Manager::class)) {
$driver = null;
$concrete = $this->resolve(
$classReflection->getName()
);
try {
$driver = $concrete->driver();
} catch (InvalidArgumentException $exception) {
// ..
}
if ($driver !== null) {
$class = get_class($driver);
if ($class) {
$found = $passable->sendToPipeline($class);
}
}
}
if (! $found) {
$next($passable);
}
}
}