🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:RouteSignatureParameters.php
<?php namespace Illuminate\Routing; use Illuminate\Support\Reflector; use Illuminate\Support\Str; use ReflectionFunction; use ReflectionMethod; class RouteSignatureParameters { /** * Extract the route action's signature parameters. * * @param array $action * @param array $conditions * @return array */ public static function fromAction(array $action, $conditions = []) { $callback = RouteAction::containsSerializedClosure($action) ? unserialize($action['uses'], ['allowed_classes' => [ \Laravel\SerializableClosure\SerializableClosure::class, \Laravel\SerializableClosure\UnsignedSerializableClosure::class, \Laravel\SerializableClosure\Serializers\Native::class, \Laravel\SerializableClosure\Serializers\Signed::class, \Laravel\SerializableClosure\Support\SelfReference::class, ]])->getClosure() : $action['uses']; $parameters = is_string($callback) ? static::fromClassMethodString($callback) : (new ReflectionFunction($callback))->getParameters(); return match (true) { ! empty($conditions['subClass']) => array_filter($parameters, fn ($p) => Reflector::isParameterSubclassOf($p, $conditions['subClass'])), ! empty($conditions['backedEnum']) => array_filter($parameters, fn ($p) => Reflector::isParameterBackedEnumWithStringBackingType($p)), default => $parameters, }; } /** * Get the parameters for the given class / method by string. * * @param string $uses * @return array */ protected static function fromClassMethodString($uses) { [$class, $method] = Str::parseCallback($uses); if (! method_exists($class, $method) && Reflector::isCallable($class, $method)) { return []; } return (new ReflectionMethod($class, $method))->getParameters(); } }
Save Changes
Cancel
Create New File
Create New Folder