Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1); namespace Larastan\Larastan\Methods\Pipes; use Closure; ..
Decoded Output download
<?php
declare(strict_types=1);
namespace Larastan\Larastan\Methods\Pipes;
use Closure;
use Illuminate\Support\Str;
use Larastan\Larastan\Concerns;
use Larastan\Larastan\Contracts\Methods\PassableContract;
use Larastan\Larastan\Contracts\Methods\Pipes\PipeContract;
use PHPStan\Reflection\ClassReflection;
/** @internal */
final class Contracts implements PipeContract
{
use Concerns\HasContainer;
public function handle(PassableContract $passable, Closure $next): void
{
$found = false;
foreach ($this->concretes($passable->getClassReflection()) as $concrete) {
if ($passable->sendToPipeline($concrete)) {
$found = true;
break;
}
}
if ($found) {
return;
}
$next($passable);
}
/** @return class-string[] */
private function concretes(ClassReflection $classReflection): array
{
if ($classReflection->isInterface() && Str::startsWith($classReflection->getName(), 'Illuminate\Contracts')) {
$concrete = $this->resolve($classReflection->getName());
if ($concrete !== null) {
$class = $concrete::class;
if ($class) {
return [$class];
}
}
}
return [];
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace Larastan\Larastan\Methods\Pipes;
use Closure;
use Illuminate\Support\Str;
use Larastan\Larastan\Concerns;
use Larastan\Larastan\Contracts\Methods\PassableContract;
use Larastan\Larastan\Contracts\Methods\Pipes\PipeContract;
use PHPStan\Reflection\ClassReflection;
/** @internal */
final class Contracts implements PipeContract
{
use Concerns\HasContainer;
public function handle(PassableContract $passable, Closure $next): void
{
$found = false;
foreach ($this->concretes($passable->getClassReflection()) as $concrete) {
if ($passable->sendToPipeline($concrete)) {
$found = true;
break;
}
}
if ($found) {
return;
}
$next($passable);
}
/** @return class-string[] */
private function concretes(ClassReflection $classReflection): array
{
if ($classReflection->isInterface() && Str::startsWith($classReflection->getName(), 'Illuminate\Contracts')) {
$concrete = $this->resolve($classReflection->getName());
if ($concrete !== null) {
$class = $concrete::class;
if ($class) {
return [$class];
}
}
}
return [];
}
}
Function Calls
None |
Stats
MD5 | 45aa1a0f35197a322c9c4c31403d9a45 |
Eval Count | 0 |
Decode Time | 96 ms |