abort($code, $message, $headers); } } if (! function_exists('abort_if')) { /** * Throw an HttpException with the given data if the given condition is true. * * @param bool $boolean * @param int $code * @param string $message * @param array $headers * @return void * * @throws \Symfony\Component\HttpKernel\Exception\HttpException * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ function abort_if($boolean, $code, $message = '', array $headers = []) { if ($boolean) { abort($code, $message, $headers); } } } if (! function_exists('abort_unless')) { /** * Throw an HttpException with the given data unless the given condition is true. * * @param bool $boolean * @param int $code * @param string $message * @param array $headers * @return void * * @throws \Symfony\Component\HttpKernel\Exception\HttpException * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ function abort_unless($boolean, $code, $message = '', array $headers = []) { if (! $boolean) { abort($code, $message, $headers); } } } if (! function_exists('action')) { /** * Generate the URL to a controller action. * * @param string $name * @param array $parameters * @param bool $absolute * @return string */ function action($name, $parameters = [], $absolute = true) { return app('url')->action($name, $parameters, $absolute); } } if (! function_exists('app')) { /** * Get the available container instance. * * @param string $abstract * @param array $parameters * @return mixed|\Illuminate\Foundation\Application */ function app($abstract = null, array $parameters = []) { if (is_null($abstract)) { return Container::getInstance(); } return Container::getInstance()->make($abstract, $parameters); } } if (! function_exists('app_path')) { /** * Get the path to the application folder. * * @param string $path * @return string */ function app_path($path = '') { return app('path').($path ? DIRECTORY_SEPARATOR.$path : $path); } } if (! function_exists('asset')) { /** * Generate an asset path for the application. * * @param string $path * @param bool $secure * @return string */ function asset($path, $secure = null) { return app('url')->asset($path, $secure); } } if (! function_exists('auth')) { /** * Get the available auth instance. * * @param string|null $guard * @return \Illuminate\Contracts\Auth\Factory|\Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard */ function auth($guard = null) { if (is_null($guard)) { return app(AuthFactory::class); } return app(AuthFactory::class)->guard($guard); } } if (! function_exists('back')) { /** * Create a new redirect response to the previous location. * * @param int $status * @param array $headers * @param mixed $fallback * @return \Illuminate\Http\RedirectResponse */ function back($status = 302, $headers = [], $fallback = false) { return app('redirect')->back($status, $headers, $fallback); } } if (! function_exists('base_path')) { /** * Get the path to the base of the install. * * @param string $path * @return string */ function base_path($path = '') { return app()->basePath().($path ? DIRECTORY_SEPARATOR.$path : $path); } } if (! function_exists('bcrypt')) { /** * Hash the given value. * * @param string $value * @param array $options * @return string */ function bcrypt($value, $options = []) { return app('hash')->make($value, $options); } } if (! function_exists('broadcast')) { /** * Begin broadcasting an event. * * @param mixed|null $event * @return \Illuminate\Broadcasting\PendingBroadcast */ function broadcast($event = null) { return app(BroadcastFactory::class)->event($event); } } if (! function_exists('cache')) { /** * Get / set the specified cache value. * * If an array is passed, we'll assume you want to put to the cache. * * @param dynamic key|key,default|data,expiration|null * @return mixed|\Illuminate\Cache\CacheManager * * @throws \Exception */ function cache() { $arguments = func_get_args(); if (empty($arguments)) { return app('cache'); } if (is_string($arguments[0])) { return app('cache')->get($arguments[0], $arguments[1] ?? null); } if (! is_array($arguments[0])) { throw new Exception( 'When setting a value in the cache, you must pass an array of key / value pairs.' ); } if (! isset($arguments[1])) { throw new Exception( 'You must specify an expiration time when setting a value in the cache.' ); } return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1]); } } if (! function_exists('config')) { /** * Get / set the specified configuration value. * * If an array is passed as the key, we will assume you want to set an array of values. * * @param array|string $key * @param mixed $default * @return mixed|\Illuminate\Config\Repository */ function config($key = null, $default = null) { if (is_null($key)) { return app('config'); } if (is_array($key)) { return app('config')->set($key); } return app('config')->get($key, $default); } } if (! function_exists('config_path')) { /** * Get the configuration path. * * @param string $path * @return string */ function config_path($path = '') { return app()->make('path.config').($path ? DIRECTORY_SEPARATOR.$path : $path); } } if (! function_exists('cookie')) { /** * Create a new cookie instance. * * @param string $name * @param string $value * @param int $minutes * @param string $path * @param string $domain * @param bool $secure * @param bool $httpOnly * @param bool $raw * @param string|null $sameSite * @return \Illuminate\Cookie\CookieJar|\Symfony\Component\HttpFoundation\Cookie */ function cookie($name = null, $value = null, $minutes = 0, $path = null, $domain = null, $secure = false, $httpOnly = true, $raw = false, $sameSite = null) { $cookie = app(CookieFactory::class); if (is_null($name)) { return $cookie; } return $cookie->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite); } } if (! function_exists('csrf_field')) { /** * Generate a CSRF token form field. * * @return \Illuminate\Support\HtmlString */ function csrf_field() { return new HtmlString(''); } } if (! function_exists('csrf_token')) { /** * Get the CSRF token value. * * @return string * * @throws \RuntimeException */ function csrf_token() { $session = app('session'); if (isset($session)) { return $session->token(); } throw new RuntimeException('Application session store not set.'); } } if (! function_exists('database_path')) { /** * Get the database path. * * @param string $path * @return string */ function database_path($path = '') { return app()->databasePath($path); } } if (! function_exists('decrypt')) { /** * Decrypt the given value. * * @param string $value * @param bool $unserialize * @return string */ function decrypt($value, $unserialize = true) { return app('encrypter')->decrypt($value, $unserialize); } } if (! function_exists('dispatch')) { /** * Dispatch a job to its appropriate handler. * * @param mixed $job * @return \Illuminate\Foundation\Bus\PendingDispatch */ function dispatch($job) { return new PendingDispatch($job); } } if (! function_exists('dispatch_now')) { /** * Dispatch a command to its appropriate handler in the current process. * * @param mixed $job * @param mixed $handler * @return mixed */ function dispatch_now($job, $handler = null) { return app(Dispatcher::class)->dispatchNow($job, $handler); } } if (! function_exists('elixir')) { /** * Get the path to a versioned Elixir file. * * @param string $file * @param string $buildDirectory * @return string * * @throws \InvalidArgumentException */ function elixir($file, $buildDirectory = 'build') { static $manifest = []; static $manifestPath; if (empty($manifest) || $manifestPath !== $buildDirectory) { $path = public_path($buildDirectory.'/rev-manifest.json'); if (file_exists($path)) { $manifest = json_decode(file_get_contents($path), true); $manifestPath = $buildDirectory; } } $file = ltrim($file, '/'); if (isset($manifest[$file])) { return '/'.trim($buildDirectory.'/'.$manifest[$file], '/'); } $unversioned = public_path($file); if (file_exists($unversioned)) { return '/'.trim($file, '/'); } throw new InvalidArgumentException("File {$file} not defined in asset manifest."); } } if (! function_exists('encrypt')) { /** * Encrypt the given value. * * @param mixed $value * @param bool $serialize * @return string */ function encrypt($value, $serialize = true) { return app('encrypter')->encrypt($value, $serialize); } } if (! function_exists('event')) { /** * Dispatch an event and call the listeners. * * @param string|object $event * @param mixed $payload * @param bool $halt * @return array|null */ function event(...$args) { return app('events')->dispatch(...$args); } } if (! function_exists('factory')) { /** * Create a model factory builder for a given class, name, and amount. * * @param dynamic class|class,name|class,amount|class,name,amount * @return \Illuminate\Database\Eloquent\FactoryBuilder */ function factory() { $factory = app(EloquentFactory::class); $arguments = func_get_args(); if (isset($arguments[1]) && is_string($arguments[1])) { return $factory->of($arguments[0], $arguments[1])->times($arguments[2] ?? null); } elseif (isset($arguments[1])) { return $factory->of($arguments[0])->times($arguments[1]); } return $factory->of($arguments[0]); } } if (! function_exists('info')) { /** * Write some information to the log. * * @param string $message * @param array $context * @return void */ function info($message, $context = []) { app('log')->info($message, $context); } } if (! function_exists('logger')) { /** * Log a debug message to the logs. * * @param string $message * @param array $context * @return \Illuminate\Contracts\Logging\Log|null */ function logger($message = null, array $context = []) { if (is_null($message)) { return app('log'); } return app('log')->debug($message, $context); } } if (! function_exists('method_field')) { /** * Generate a form field to spoof the HTTP verb used by forms. * * @param string $method * @return \Illuminate\Support\HtmlString */ function method_field($method) { return new HtmlString(''); } } if (! function_exists('mix')) { /** * Get the path to a versioned Mix file. * * @param string $path * @param string $manifestDirectory * @return \Illuminate\Support\HtmlString * * @throws \Exception */ function mix($path, $manifestDirectory = '') { static $manifests = []; if (! Str::startsWith($path, '/')) { $path = "/{$path}"; } if ($manifestDirectory && ! Str::startsWith($manifestDirectory, '/')) { $manifestDirectory = "/{$manifestDirectory}"; } if (file_exists(public_path($manifestDirectory.'/hot'))) { $url = file_get_contents(public_path($manifestDirectory.'/hot')); if (Str::startsWith($url, ['http://', 'https://'])) { return new HtmlString(Str::after($url, ':').$path); } return new HtmlString("//localhost:8080{$path}"); } $manifestPath = public_path($manifestDirectory.'/mix-manifest.json'); if (! isset($manifests[$manifestPath])) { if (! file_exists($manifestPath)) { throw new Exception('The Mix manifest does not exist.'); } $manifests[$manifestPath] = json_decode(file_get_contents($manifestPath), true); } $manifest = $manifests[$manifestPath]; if (! isset($manifest[$path])) { report(new Exception("Unable to locate Mix file: {$path}.")); if (! app('config')->get('app.debug')) { return $path; } } return new HtmlString($manifestDirectory.$manifest[$path]); } } if (! function_exists('now')) { /** * Create a new Carbon instance for the current time. * * @param \DateTimeZone|string|null $tz * @return \Illuminate\Support\Carbon */ function now($tz = null) { return Carbon::now($tz); } } if (! function_exists('old')) { /** * Retrieve an old input item. * * @param string $key * @param mixed $default * @return mixed */ function old($key = null, $default = null) { return app('request')->old($key, $default); } } if (! function_exists('policy')) { /** * Get a policy instance for a given class. * * @param object|string $class * @return mixed * * @throws \InvalidArgumentException */ function policy($class) { return app(Gate::class)->getPolicyFor($class); } } if (! function_exists('public_path')) { /** * Get the path to the public folder. * * @param string $path * @return string */ function public_path($path = '') { return app()->make('path.public').($path ? DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR) : $path); } } if (! function_exists('redirect')) { /** * Get an instance of the redirector. * * @param string|null $to * @param int $status * @param array $headers * @param bool $secure * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */ function redirect($to = null, $status = 302, $headers = [], $secure = null) { if (is_null($to)) { return app('redirect'); } return app('redirect')->to($to, $status, $headers, $secure); } } if (! function_exists('report')) { /** * Report an exception. * * @param \Exception $exception * @return void */ function report($exception) { if ($exception instanceof Throwable && ! $exception instanceof Exception) { $exception = new FatalThrowableError($exception); } app(ExceptionHandler::class)->report($exception); } } if (! function_exists('request')) { /** * Get an instance of the current request or an input item from the request. * * @param array|string $key * @param mixed $default * @return \Illuminate\Http\Request|string|array */ function request($key = null, $default = null) { if (is_null($key)) { return app('request'); } if (is_array($key)) { return app('request')->only($key); } $value = app('request')->__get($key); return is_null($value) ? value($default) : $value; } } if (! function_exists('rescue')) { /** * Catch a potential exception and return a default value. * * @param callable $callback * @param mixed $rescue * @return mixed */ function rescue(callable $callback, $rescue = null) { try { return $callback(); } catch (Throwable $e) { report($e); return value($rescue); } } } if (! function_exists('resolve')) { /** * Resolve a service from the container. * * @param string $name * @return mixed */ function resolve($name) { return app($name); } } if (! function_exists('resource_path')) { /** * Get the path to the resources folder. * * @param string $path * @return string */ function resource_path($path = '') { return app()->resourcePath($path); } } if (! function_exists('response')) { /** * Return a new response from the application. * * @param string $content * @param int $status * @param array $headers * @return \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Routing\ResponseFactory */ function response($content = '', $status = 200, array $headers = []) { $factory = app(ResponseFactory::class); if (func_num_args() === 0) { return $factory; } return $factory->make($content, $status, $headers); } } if (! function_exists('route')) { /** * Generate the URL to a named route. * * @param array|string $name * @param array $parameters * @param bool $absolute * @return string */ function route($name, $parameters = [], $absolute = true) { return app('url')->route($name, $parameters, $absolute); } } if (! function_exists('secure_asset')) { /** * Generate an asset path for the application. * * @param string $path * @return string */ function secure_asset($path) { return asset($path, true); } } if (! function_exists('secure_url')) { /** * Generate a HTTPS url for the application. * * @param string $path * @param mixed $parameters * @return string */ function secure_url($path, $parameters = []) { return url($path, $parameters, true); } } if (! function_exists('session')) { /** * Get / set the specified session value. * * If an array is passed as the key, we will assume you want to set an array of values. * * @param array|string $key * @param mixed $default * @return mixed|\Illuminate\Session\Store|\Illuminate\Session\SessionManager */ function session($key = null, $default = null) { if (is_null($key)) { return app('session'); } if (is_array($key)) { return app('session')->put($key); } return app('session')->get($key, $default); } } if (! function_exists('storage_path')) { /** * Get the path to the storage folder. * * @param string $path * @return string */ function storage_path($path = '') { return app('path.storage').($path ? DIRECTORY_SEPARATOR.$path : $path); } } if (! function_exists('today')) { /** * Create a new Carbon instance for the current date. * * @param \DateTimeZone|string|null $tz * @return \Illuminate\Support\Carbon */ function today($tz = null) { return Carbon::today($tz); } } if (! function_exists('trans')) { /** * Translate the given message. * * @param string $key * @param array $replace * @param string $locale * @return \Illuminate\Contracts\Translation\Translator|string|array|null */ function trans($key = null, $replace = [], $locale = null) { if (is_null($key)) { return app('translator'); } return app('translator')->trans($key, $replace, $locale); } } if (! function_exists('trans_choice')) { /** * Translates the given message based on a count. * * @param string $key * @param int|array|\Countable $number * @param array $replace * @param string $locale * @return string */ function trans_choice($key, $number, array $replace = [], $locale = null) { return app('translator')->transChoice($key, $number, $replace, $locale); } } if (! function_exists('__')) { /** * Translate the given message. * * @param string $key * @param array $replace * @param string $locale * @return string|array|null */ function __($key, $replace = [], $locale = null) { return app('translator')->getFromJson($key, $replace, $locale); } } if (! function_exists('url')) { /** * Generate a url for the application. * * @param string $path * @param mixed $parameters * @param bool $secure * @return \Illuminate\Contracts\Routing\UrlGenerator|string */ function url($path = null, $parameters = [], $secure = null) { if (is_null($path)) { return app(UrlGenerator::class); } return app(UrlGenerator::class)->to($path, $parameters, $secure); } } if (! function_exists('validator')) { /** * Create a new Validator instance. * * @param array $data * @param array $rules * @param array $messages * @param array $customAttributes * @return \Illuminate\Contracts\Validation\Validator */ function validator(array $data = [], array $rules = [], array $messages = [], array $customAttributes = []) { $factory = app(ValidationFactory::class); if (func_num_args() === 0) { return $factory; } return $factory->make($data, $rules, $messages, $customAttributes); } } if (! function_exists('view')) { /** * Get the evaluated view contents for the given view. * * @param string $view * @param array $data * @param array $mergeData * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory */ function view($view = null, $data = [], $mergeData = []) { $factory = app(ViewFactory::class); if (func_num_args() === 0) { return $factory; } return $factory->make($view, $data, $mergeData); } }