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 Orion\Specs\Builders\Partials\Parameters; use ..
Decoded Output download
<?php
declare(strict_types=1);
namespace Orion\Specs\Builders\Partials\Parameters;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Routing\Route;
use Orion\Http\Controllers\BaseController;
use Orion\Http\Controllers\RelationController;
class PathParametersBuilder
{
/**
* @param Route $route
* @param string $controllerClass
* @return array
* @throws BindingResolutionException
*/
public function build(Route $route, string $controllerClass): array
{
$parameterNames = $route->parameterNames();
/** @var BaseController $controller */
$controller = app()->make($controllerClass);
return collect($parameterNames)->map(
function (string $parameterName, int $index) use ($route, $controller) {
/** @var Model $model */
if ($index === 0 && $controller instanceof RelationController) {
$model = app()->make($controller->getModel());
} else {
$model = app()->make($controller->resolveResourceModelClass());
}
return $this->buildPathParameter($controller, $model, $parameterName, $index, $route);
}
)->toArray();
}
/**
* @param BaseController $controller
* @param Model $model
* @param string $parameterName
* @param int $index
* @param Route $route
* @return array
*/
protected function buildPathParameter(
BaseController $controller,
Model $model,
string $parameterName,
int $index,
Route $route
): array {
$required = true;
if ($controller instanceof RelationController) {
$optionalInDefinition = strpos($route->uri, "{$parameterName}?");
$relation = $controller->resolveRelation();
if ($relation instanceof HasOne || $relation instanceof MorphOne) {
$required = !$optionalInDefinition && $index === 0;
}
}
return [
'schema' => [
'type' => $model->getKeyType() === 'int' ? 'integer' : $model->getKeyType(),
],
'name' => $parameterName,
'in' => 'path',
'required' => $required,
];
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace Orion\Specs\Builders\Partials\Parameters;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Routing\Route;
use Orion\Http\Controllers\BaseController;
use Orion\Http\Controllers\RelationController;
class PathParametersBuilder
{
/**
* @param Route $route
* @param string $controllerClass
* @return array
* @throws BindingResolutionException
*/
public function build(Route $route, string $controllerClass): array
{
$parameterNames = $route->parameterNames();
/** @var BaseController $controller */
$controller = app()->make($controllerClass);
return collect($parameterNames)->map(
function (string $parameterName, int $index) use ($route, $controller) {
/** @var Model $model */
if ($index === 0 && $controller instanceof RelationController) {
$model = app()->make($controller->getModel());
} else {
$model = app()->make($controller->resolveResourceModelClass());
}
return $this->buildPathParameter($controller, $model, $parameterName, $index, $route);
}
)->toArray();
}
/**
* @param BaseController $controller
* @param Model $model
* @param string $parameterName
* @param int $index
* @param Route $route
* @return array
*/
protected function buildPathParameter(
BaseController $controller,
Model $model,
string $parameterName,
int $index,
Route $route
): array {
$required = true;
if ($controller instanceof RelationController) {
$optionalInDefinition = strpos($route->uri, "{$parameterName}?");
$relation = $controller->resolveRelation();
if ($relation instanceof HasOne || $relation instanceof MorphOne) {
$required = !$optionalInDefinition && $index === 0;
}
}
return [
'schema' => [
'type' => $model->getKeyType() === 'int' ? 'integer' : $model->getKeyType(),
],
'name' => $parameterName,
'in' => 'path',
'required' => $required,
];
}
}
Function Calls
None |
Stats
MD5 | 6100f5d8c4df5cdf17c22e15c98882ca |
Eval Count | 0 |
Decode Time | 105 ms |