2018-11-05 09:26:30 +08:00

381 lines
8.8 KiB
PHP

<?php
use Illuminate\Support\Str;
use Illuminate\Container\Container;
use Illuminate\Contracts\Bus\Dispatcher;
if (! function_exists('abort')) {
/**
* Throw an HttpException with the given data.
*
* @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($code, $message = '', array $headers = [])
{
return app()->abort($code, $message, $headers);
}
}
if (! function_exists('app')) {
/**
* Get the available container instance.
*
* @param string $make
* @return mixed|\Laravel\Lumen\Application
*/
function app($make = null)
{
if (is_null($make)) {
return Container::getInstance();
}
return Container::getInstance()->make($make);
}
}
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 ? '/'.$path : $path);
}
}
if (! function_exists('decrypt')) {
/**
* Decrypt the given value.
*
* @param string $value
* @return string
*/
function decrypt($value)
{
return app('encrypter')->decrypt($value);
}
}
if (! function_exists('dispatch')) {
/**
* Dispatch a job to its appropriate handler.
*
* @param mixed $job
* @return mixed
*/
function dispatch($job)
{
return app(Dispatcher::class)->dispatch($job);
}
}
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
*/
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('database_path')) {
/**
* Get the path to the database directory of the install.
*
* @param string $path
* @return string
*/
function database_path($path = '')
{
return app()->databasePath($path);
}
}
if (! function_exists('encrypt')) {
/**
* Encrypt the given value.
*
* @param string $value
* @return string
*/
function encrypt($value)
{
return app('encrypter')->encrypt($value);
}
}
if (! function_exists('env')) {
/**
* Gets the value of an environment variable. Supports boolean, empty and null.
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function env($key, $default = null)
{
$value = getenv($key);
if ($value === false) {
return value($default);
}
switch (strtolower($value)) {
case 'true':
case '(true)':
return true;
case 'false':
case '(false)':
return false;
case 'empty':
case '(empty)':
return '';
case 'null':
case '(null)':
return;
}
if (Str::startsWith($value, '"') && Str::endsWith($value, '"')) {
return substr($value, 1, -1);
}
return $value;
}
}
if (! function_exists('event')) {
/**
* Fire an event and call the listeners.
*
* @param object|string $event
* @param mixed $payload
* @param bool $halt
* @return array|null
*/
function event($event, $payload = [], $halt = false)
{
return app('events')->fire($event, $payload, $halt);
}
}
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()
{
app('db');
$factory = app('Illuminate\Database\Eloquent\Factory');
$arguments = func_get_args();
if (isset($arguments[1]) && is_string($arguments[1])) {
return $factory->of($arguments[0], $arguments[1])->times(isset($arguments[2]) ? $arguments[2] : null);
} elseif (isset($arguments[1])) {
return $factory->of($arguments[0])->times($arguments[1]);
} else {
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 = [])
{
return app('Psr\Log\LoggerInterface')->info($message, $context);
}
}
if (! function_exists('redirect')) {
/**
* Get an instance of the redirector.
*
* @param string|null $to
* @param int $status
* @param array $headers
* @param bool $secure
* @return \Laravel\Lumen\Http\Redirector|\Illuminate\Http\RedirectResponse
*/
function redirect($to = null, $status = 302, $headers = [], $secure = null)
{
$redirector = new Laravel\Lumen\Http\Redirector(app());
if (is_null($to)) {
return $redirector;
}
return $redirector->to($to, $status, $headers, $secure);
}
}
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 \Illuminate\Http\Response|\Laravel\Lumen\Http\ResponseFactory
*/
function response($content = '', $status = 200, array $headers = [])
{
$factory = new Laravel\Lumen\Http\ResponseFactory;
if (func_num_args() === 0) {
return $factory;
}
return $factory->make($content, $status, $headers);
}
}
if (! function_exists('route')) {
/**
* Generate a URL to a named route.
*
* @param string $name
* @param array $parameters
* @param bool $secure
* @return string
*/
function route($name, $parameters = [], $secure = null)
{
return app('url')->route($name, $parameters, $secure);
}
}
if (! function_exists('storage_path')) {
/**
* Get the path to the storage folder.
*
* @param string $path
* @return string
*/
function storage_path($path = '')
{
return app()->storagePath($path);
}
}
if (! function_exists('trans')) {
/**
* Translate the given message.
*
* @param string $id
* @param array $replace
* @param string $locale
* @return \Illuminate\Contracts\Translation\Translator|string
*/
function trans($id = null, $replace = [], $locale = null)
{
if (is_null($id)) {
return app('translator');
}
return app('translator')->trans($id, $replace, $locale);
}
}
if (! function_exists('trans_choice')) {
/**
* Translates the given message based on a count.
*
* @param string $id
* @param int|array|\Countable $number
* @param array $replace
* @param string $locale
* @return string
*/
function trans_choice($id, $number, array $replace = [], $locale = null)
{
return app('translator')->transChoice($id, $number, $replace, $locale);
}
}
if (! function_exists('url')) {
/**
* Generate a url for the application.
*
* @param string $path
* @param mixed $parameters
* @param bool $secure
* @return string
*/
function url($path = null, $parameters = [], $secure = null)
{
return app('url')->to($path, $parameters, $secure);
}
}
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
*/
function view($view = null, $data = [], $mergeData = [])
{
$factory = app('view');
if (func_num_args() === 0) {
return $factory;
}
return $factory->make($view, $data, $mergeData);
}
}