%PDF- %PDF-
Direktori : /home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Routing/ |
Current File : //home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Routing/PendingSingletonResourceRegistration.php |
<?php namespace Illuminate\Routing; use Illuminate\Support\Arr; use Illuminate\Support\Traits\Macroable; class PendingSingletonResourceRegistration { use CreatesRegularExpressionRouteConstraints, Macroable; /** * The resource registrar. * * @var \Illuminate\Routing\ResourceRegistrar */ protected $registrar; /** * The resource name. * * @var string */ protected $name; /** * The resource controller. * * @var string */ protected $controller; /** * The resource options. * * @var array */ protected $options = []; /** * The resource's registration status. * * @var bool */ protected $registered = false; /** * Create a new pending singleton resource registration instance. * * @param \Illuminate\Routing\ResourceRegistrar $registrar * @param string $name * @param string $controller * @param array $options * @return void */ public function __construct(ResourceRegistrar $registrar, $name, $controller, array $options) { $this->name = $name; $this->options = $options; $this->registrar = $registrar; $this->controller = $controller; } /** * Set the methods the controller should apply to. * * @param array|string|dynamic $methods * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function only($methods) { $this->options['only'] = is_array($methods) ? $methods : func_get_args(); return $this; } /** * Set the methods the controller should exclude. * * @param array|string|dynamic $methods * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function except($methods) { $this->options['except'] = is_array($methods) ? $methods : func_get_args(); return $this; } /** * Indicate that the resource should have creation and storage routes. * * @param bool $creatable * @return $this */ public function creatable($creatable = true) { $this->options['creatable'] = $creatable; return $this; } /** * Indicate that the resource should have a deletion route. * * @param bool $destroyable * @return $this */ public function destroyable($destroyable = true) { $this->options['destroyable'] = $destroyable; return $this; } /** * Set the route names for controller actions. * * @param array|string $names * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function names($names) { $this->options['names'] = $names; return $this; } /** * Set the route name for a controller action. * * @param string $method * @param string $name * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function name($method, $name) { $this->options['names'][$method] = $name; return $this; } /** * Override the route parameter names. * * @param array|string $parameters * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function parameters($parameters) { $this->options['parameters'] = $parameters; return $this; } /** * Override a route parameter's name. * * @param string $previous * @param string $new * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function parameter($previous, $new) { $this->options['parameters'][$previous] = $new; return $this; } /** * Add middleware to the resource routes. * * @param mixed $middleware * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function middleware($middleware) { $middleware = Arr::wrap($middleware); foreach ($middleware as $key => $value) { $middleware[$key] = (string) $value; } $this->options['middleware'] = $middleware; return $this; } /** * Specify middleware that should be removed from the resource routes. * * @param array|string $middleware * @return $this|array */ public function withoutMiddleware($middleware) { $this->options['excluded_middleware'] = array_merge( (array) ($this->options['excluded_middleware'] ?? []), Arr::wrap($middleware) ); return $this; } /** * Add "where" constraints to the resource routes. * * @param mixed $wheres * @return \Illuminate\Routing\PendingSingletonResourceRegistration */ public function where($wheres) { $this->options['wheres'] = $wheres; return $this; } /** * Register the singleton resource route. * * @return \Illuminate\Routing\RouteCollection */ public function register() { $this->registered = true; return $this->registrar->singleton( $this->name, $this->controller, $this->options ); } /** * Handle the object's destruction. * * @return void */ public function __destruct() { if (! $this->registered) { $this->register(); } } }