File Manager Lite
Dir:
/home/codewavebd/public_html/vendor/laravel/framework/src/Illuminate/Routing
Upload
[..]
Attributes/
Rename
Del
CallableDispatcher.php (1.32 KB)
Edit
Rename
Del
Console/
Rename
Del
Contracts/
Rename
Del
ControllerDispatcher.php (2.22 KB)
Edit
Rename
Del
Controllers/
Rename
Del
Events/
Rename
Del
Exceptions/
Rename
Del
FiltersControllerMiddleware.php (524 B)
Edit
Rename
Del
ImplicitRouteBinding.php (4.32 KB)
Edit
Rename
Del
LICENSE.md (1.05 KB)
Edit
Rename
Del
Matching/
Rename
Del
Middleware/
Rename
Del
PendingResourceRegistration.php (7.51 KB)
Edit
Rename
Del
PendingSingletonResourceRegistration.php (6.78 KB)
Edit
Rename
Del
Pipeline.php (1.49 KB)
Edit
Rename
Del
RedirectController.php (1.22 KB)
Edit
Rename
Del
Redirector.php (7.17 KB)
Edit
Rename
Del
ResolvesRouteDependencies.php (3.82 KB)
Edit
Rename
Del
ResourceRegistrar.php (21.7 KB)
Edit
Rename
Del
ResponseFactory.php (11.41 KB)
Edit
Rename
Del
Route.php (35.22 KB)
Edit
Rename
Del
RouteAction.php (3.38 KB)
Edit
Rename
Del
RouteBinding.php (2.93 KB)
Edit
Rename
Del
RouteCollection.php (8.52 KB)
Edit
Rename
Del
RouteDependencyResolverTrait.php (135 B)
Edit
Rename
Del
RouteFileRegistrar.php (621 B)
Edit
Rename
Del
RouteGroup.php (2.67 KB)
Edit
Rename
Del
RouteParameterBinder.php (3.02 KB)
Edit
Rename
Del
RouteRegistrar.php (9.25 KB)
Edit
Rename
Del
RouteSignatureParameters.php (1.96 KB)
Edit
Rename
Del
RouteUri.php (1.27 KB)
Edit
Rename
Del
RouteUrlGenerator.php (14.61 KB)
Edit
Rename
Del
Router.php (40.56 KB)
Edit
Rename
Del
RoutingServiceProvider.php (6.69 KB)
Edit
Rename
Del
SortedMiddleware.php (3.74 KB)
Edit
Rename
Del
UrlGenerator.php (24.28 KB)
Edit
Rename
Del
composer.json (1.67 KB)
Edit
Rename
Del
Edit: ResolvesRouteDependencies.php
<?php namespace Illuminate\Routing; use Illuminate\Container\Util; use Illuminate\Support\Arr; use Illuminate\Support\Reflector; use ReflectionClass; use ReflectionFunctionAbstract; use ReflectionMethod; use ReflectionParameter; use stdClass; trait ResolvesRouteDependencies { /** * Resolve the object method's type-hinted dependencies. * * @param array $parameters * @param object $instance * @param string $method * @return array */ protected function resolveClassMethodDependencies(array $parameters, $instance, $method) { if (! method_exists($instance, $method)) { return $parameters; } return $this->resolveMethodDependencies( $parameters, new ReflectionMethod($instance, $method) ); } /** * Resolve the given method's type-hinted dependencies. * * @param array $parameters * @param \ReflectionFunctionAbstract $reflector * @return array */ public function resolveMethodDependencies(array $parameters, ReflectionFunctionAbstract $reflector) { $instanceCount = 0; $values = array_values($parameters); $skippableValue = new stdClass; foreach ($reflector->getParameters() as $key => $parameter) { $instance = $this->transformDependency($parameter, $parameters, $skippableValue); if ($instance !== $skippableValue) { $instanceCount++; $this->spliceIntoParameters($parameters, $key, $instance); } elseif (! isset($values[$key - $instanceCount]) && $parameter->isDefaultValueAvailable()) { $this->spliceIntoParameters($parameters, $key, $parameter->getDefaultValue()); } $this->container->fireAfterResolvingAttributeCallbacks($parameter->getAttributes(), $instance); } return $parameters; } /** * Attempt to transform the given parameter into a class instance. * * @param \ReflectionParameter $parameter * @param array $parameters * @param object $skippableValue * @return mixed */ protected function transformDependency(ReflectionParameter $parameter, $parameters, $skippableValue) { if ($attribute = Util::getContextualAttributeFromDependency($parameter)) { return $this->container->resolveFromAttribute($attribute, $parameter); } $className = Reflector::getParameterClassName($parameter); // If the parameter has a type-hinted class, we will check to see if it is already in // the list of parameters. If it is we will just skip it as it is probably a model // binding and we do not want to mess with those; otherwise, we resolve it here. if ($className && ! $this->alreadyInParameters($className, $parameters)) { $isEnum = (new ReflectionClass($className))->isEnum(); return $parameter->isDefaultValueAvailable() ? ($isEnum ? $parameter->getDefaultValue() : null) : $this->container->make($className); } return $skippableValue; } /** * Determine if an object of the given class is in a list of parameters. * * @param string $class * @param array $parameters * @return bool */ protected function alreadyInParameters($class, array $parameters) { return ! is_null(Arr::first($parameters, fn ($value) => $value instanceof $class)); } /** * Splice the given value into the parameter list. * * @param array $parameters * @param string $offset * @param mixed $value * @return void */ protected function spliceIntoParameters(array &$parameters, $offset, $value) { array_splice( $parameters, $offset, 0, [$value] ); } }
Simpan