%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/vendor/nunomaduro/larastan/src/Methods/Pipes/ |
Upload File : |
<?php
declare(strict_types=1);
namespace NunoMaduro\Larastan\Methods\Pipes;
use Closure;
use Exception;
use Illuminate\Support\Facades\Facade;
use Illuminate\Support\Str;
use NunoMaduro\Larastan\Contracts\Methods\PassableContract;
use NunoMaduro\Larastan\Contracts\Methods\Pipes\PipeContract;
use NunoMaduro\Larastan\Reflection\ReflectionHelper;
use function class_exists;
use function get_class;
use function sprintf;
use function strrpos;
use function substr;
/**
* @internal
*/
final class Facades implements PipeContract
{
/**
* {@inheritdoc}
*/
public function handle(PassableContract $passable, Closure $next): void
{
$classReflection = $passable->getClassReflection();
$found = false;
if ($classReflection->isSubclassOf(Facade::class)) {
$facadeClass = $classReflection->getName();
if (ReflectionHelper::hasMethodTag($classReflection, $passable->getMethodName())) {
$next($passable);
return;
}
$concrete = null;
try {
$concrete = $facadeClass::getFacadeRoot();
} catch (Exception) {
//
}
if ($concrete) {
$class = get_class($concrete);
if ($class) {
$found = $passable->sendToPipeline($class, true);
}
}
if (! $found && Str::startsWith($passable->getMethodName(), 'assert')) {
$fakeFacadeClass = $this->getFake($facadeClass);
if ($passable->getReflectionProvider()->hasClass($fakeFacadeClass)) {
assert(class_exists($fakeFacadeClass));
$found = $passable->sendToPipeline($fakeFacadeClass, true);
}
}
}
if (! $found) {
$next($passable);
}
}
private function getFake(string $facade): string
{
$shortClassName = substr($facade, strrpos($facade, '\\') + 1);
return sprintf('\\Illuminate\\Support\\Testing\\Fakes\\%sFake', $shortClassName);
}
}