PATH:
home
/
lab2454c
/
westernclear.net
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Routing
<?php namespace Illuminate\Routing; use Illuminate\Support\Arr; class RouteGroup { /** * Merge route groups into a new array. * * @param array $new * @param array $old * @param bool $prependExistingPrefix * @return array */ public static function merge($new, $old, $prependExistingPrefix = true) { if (isset($new['domain'])) { unset($old['domain']); } if (isset($new['controller'])) { unset($old['controller']); } $new = array_merge(static::formatAs($new, $old), [ 'namespace' => static::formatNamespace($new, $old), 'prefix' => static::formatPrefix($new, $old, $prependExistingPrefix), 'where' => static::formatWhere($new, $old), ]); return array_merge_recursive(Arr::except( $old, ['namespace', 'prefix', 'where', 'as'] ), $new); } /** * Format the namespace for the new group attributes. * * @param array $new * @param array $old * @return string|null */ protected static function formatNamespace($new, $old) { if (isset($new['namespace'])) { return isset($old['namespace']) && ! str_starts_with($new['namespace'], '\\') ? trim($old['namespace'], '\\').'\\'.trim($new['namespace'], '\\') : trim($new['namespace'], '\\'); } return $old['namespace'] ?? null; } /** * Format the prefix for the new group attributes. * * @param array $new * @param array $old * @param bool $prependExistingPrefix * @return string|null */ protected static function formatPrefix($new, $old, $prependExistingPrefix = true) { $old = $old['prefix'] ?? ''; if ($prependExistingPrefix) { return isset($new['prefix']) ? trim($old, '/').'/'.trim($new['prefix'], '/') : $old; } else { return isset($new['prefix']) ? trim($new['prefix'], '/').'/'.trim($old, '/') : $old; } } /** * Format the "wheres" for the new group attributes. * * @param array $new * @param array $old * @return array */ protected static function formatWhere($new, $old) { return array_merge( $old['where'] ?? [], $new['where'] ?? [] ); } /** * Format the "as" clause of the new group attributes. * * @param array $new * @param array $old * @return array */ protected static function formatAs($new, $old) { if (isset($old['as'])) { $new['as'] = $old['as'].($new['as'] ?? ''); } return $new; } }
[+]
Exceptions
[-] ControllerDispatcher.php
[edit]
[-] RouteParameterBinder.php
[edit]
[-] composer.json
[edit]
[-] CompiledRouteCollection.php
[edit]
[-] ImplicitRouteBinding.php
[edit]
[-] RouteUri.php
[edit]
[-] RouteGroup.php
[edit]
[-] PendingResourceRegistration.php
[edit]
[+]
..
[-] Redirector.php
[edit]
[-] MiddlewareNameResolver.php
[edit]
[-] ViewController.php
[edit]
[-] Route.php
[edit]
[-] Pipeline.php
[edit]
[+]
Matching
[-] RouteSignatureParameters.php
[edit]
[-] RouteDependencyResolverTrait.php
[edit]
[-] CreatesRegularExpressionRouteConstraints.php
[edit]
[+]
Events
[-] ResourceRegistrar.php
[edit]
[-] RouteFileRegistrar.php
[edit]
[+]
Middleware
[-] Controller.php
[edit]
[-] RouteRegistrar.php
[edit]
[-] RouteUrlGenerator.php
[edit]
[-] LICENSE.md
[edit]
[+]
Contracts
[+]
Console
[-] ResponseFactory.php
[edit]
[-] SortedMiddleware.php
[edit]
[-] RoutingServiceProvider.php
[edit]
[-] UrlGenerator.php
[edit]
[-] AbstractRouteCollection.php
[edit]
[-] RouteBinding.php
[edit]
[-] RouteCollectionInterface.php
[edit]
[-] RedirectController.php
[edit]
[-] RouteCollection.php
[edit]
[-] RouteAction.php
[edit]
[-] Router.php
[edit]
[-] ControllerMiddlewareOptions.php
[edit]