PHP 8.3.31
Preview: ImplicitRouteBinding.php Size: 4.46 KB
/home/getspomw/royalsquad.us/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php

<?php

namespace Illuminate\Routing;

use Illuminate\Contracts\Routing\UrlRoutable;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException;
use Illuminate\Support\Reflector;
use Illuminate\Support\Str;

class ImplicitRouteBinding
{
    /**
     * Resolve the implicit route bindings for the given route.
     *
     * @param  \Illuminate\Container\Container  $container
     * @param  \Illuminate\Routing\Route  $route
     * @return void
     *
     * @throws \Illuminate\Database\Eloquent\ModelNotFoundException<\Illuminate\Database\Eloquent\Model>
     * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException
     */
    public static function resolveForRoute($container, $route)
    {
        $parameters = $route->parameters();

        $route = static::resolveBackedEnumsForRoute($route, $parameters);

        foreach ($route->signatureParameters(['subClass' => UrlRoutable::class]) as $parameter) {
            if (! $parameterName = static::getParameterName($parameter->getName(), $parameters)) {
                continue;
            }

            $parameterValue = $parameters[$parameterName];

            if ($parameterValue instanceof UrlRoutable) {
                continue;
            }

            $instance = $container->make(Reflector::getParameterClassName($parameter));

            $parent = $route->parentOfParameter($parameterName);

            $routeBindingMethod = $route->allowsTrashedBindings() && in_array(SoftDeletes::class, class_uses_recursive($instance))
                        ? 'resolveSoftDeletableRouteBinding'
                        : 'resolveRouteBinding';

            if ($parent instanceof UrlRoutable &&
                ! $route->preventsScopedBindings() &&
                ($route->enforcesScopedBindings() || array_key_exists($parameterName, $route->bindingFields()))) {
                $childRouteBindingMethod = $route->allowsTrashedBindings() && in_array(SoftDeletes::class, class_uses_recursive($instance))
                            ? 'resolveSoftDeletableChildRouteBinding'
                            : 'resolveChildRouteBinding';

                if (! $model = $parent->{$childRouteBindingMethod}(
                    $parameterName, $parameterValue, $route->bindingFieldFor($parameterName)
                )) {
                    throw (new ModelNotFoundException)->setModel(get_class($instance), [$parameterValue]);
                }
            } elseif (! $model = $instance->{$routeBindingMethod}($parameterValue, $route->bindingFieldFor($parameterName))) {
                throw (new ModelNotFoundException)->setModel(get_class($instance), [$parameterValue]);
            }

            $route->setParameter($parameterName, $model);
        }
    }

    /**
     * Resolve the Backed Enums route bindings for the route.
     *
     * @param  \Illuminate\Routing\Route  $route
     * @param  array  $parameters
     * @return \Illuminate\Routing\Route
     *
     * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException
     */
    protected static function resolveBackedEnumsForRoute($route, $parameters)
    {
        foreach ($route->signatureParameters(['backedEnum' => true]) as $parameter) {
            if (! $parameterName = static::getParameterName($parameter->getName(), $parameters)) {
                continue;
            }

            $parameterValue = $parameters[$parameterName];

            if ($parameterValue === null) {
                continue;
            }

            $backedEnumClass = $parameter->getType()?->getName();

            $backedEnum = $parameterValue instanceof $backedEnumClass
                ? $parameterValue
                : $backedEnumClass::tryFrom((string) $parameterValue);

            if (is_null($backedEnum)) {
                throw new BackedEnumCaseNotFoundException($backedEnumClass, $parameterValue);
            }

            $route->setParameter($parameterName, $backedEnum);
        }

        return $route;
    }

    /**
     * Return the parameter name if it exists in the given parameters.
     *
     * @param  string  $name
     * @param  array  $parameters
     * @return string|null
     */
    protected static function getParameterName($name, $parameters)
    {
        if (array_key_exists($name, $parameters)) {
            return $name;
        }

        if (array_key_exists($snakedName = Str::snake($name), $parameters)) {
            return $snakedName;
        }
    }
}

Directory Contents

Dirs: 7 × Files: 38

Name Size Perms Modified Actions
Console DIR
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
Contracts DIR
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
Events DIR
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
Matching DIR
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
- drwxrwxrwx 2025-09-17 06:53:02
Edit Download
8.57 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.34 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
8.82 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.55 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.62 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
2.25 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1009 B lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
2.54 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
524 B lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
4.46 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.05 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.10 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
7.56 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
6.83 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.49 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.22 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
7.22 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.81 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
21.73 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
8.53 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
32.38 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.38 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.02 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
6.93 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
2.28 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
135 B lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
641 B lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
2.67 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.04 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
39.78 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
8.61 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.60 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.29 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
9.05 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
6.65 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
3.75 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
23.47 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download
1.41 KB lrw-rw-rw- 2025-09-17 06:53:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).