From 9ca2450d10caf6904ad7a56740f5637359bfe477 Mon Sep 17 00:00:00 2001 From: "Barry vd. Heuvel" Date: Mon, 11 Mar 2013 21:46:27 +0100 Subject: [PATCH] Tweak helper behavior Helper file not included by default, but can be enabled with the config file. Default value can be overridden with the --helpers (-H) of --nohelpers (-N) options. --- _IDE_helper.php | 660 ------------------ .../LaravelIdeHelper/GeneratorCommand.php | 21 +- src/config/config.php | 7 +- 3 files changed, 25 insertions(+), 663 deletions(-) diff --git a/_IDE_helper.php b/_IDE_helper.php index f240b84..00e339d 100644 --- a/_IDE_helper.php +++ b/_IDE_helper.php @@ -1,664 +1,4 @@ action($name, $parameters, $absolute); - } -} - -if ( ! function_exists('app')) -{ - /** - * Get the root Facade application instance. - * - * @param string $make - * @return mixed - */ - function app($make = null) - { - if ($make !== null) - { - return app()->make($make); - } - - return Illuminate\Support\Facades\Facade::getFacadeApplication(); - } -} - -if ( ! function_exists('app_path')) -{ - /** - * Get the path to the application folder. - * - * @return string - */ - function app_path() - { - return app('path'); - } -} - -if ( ! function_exists('array_divide')) -{ - /** - * Divide an array into two arrays. One with keys and the other with values. - * - * @param array $array - * @return array - */ - function array_divide($array) - { - return array(array_keys($array), array_values($array)); - } -} - -if ( ! function_exists('array_dot')) -{ - /** - * Flatten a multi-dimensional associative array with dots. - * - * @param array $array - * @param string $prepend - * @return array - */ - function array_dot($array, $prepend = '') - { - $results = array(); - - foreach ($array as $key => $value) - { - if (is_array($value)) - { - $results = array_merge($results, array_dot($value, $prepend.$key.'.')); - } - else - { - $results[$prepend.$key] = $value; - } - } - - return $results; - } -} - -if ( ! function_exists('array_except')) -{ - /** - * Get all of the given array except for a specified array of items. - * - * @param array $array - * @param array $keys - * @return array - */ - function array_except($array, $keys) - { - return array_diff_key($array, array_flip((array) $keys)); - } -} - -if ( ! function_exists('array_first')) -{ - /** - * Return the first element in an array passing a given truth test. - * - * @param array $array - * @param Closure $callback - * @param mixed $default - * @return mixed - */ - function array_first($array, $callback, $default = null) - { - foreach ($array as $key => $value) - { - if (call_user_func($callback, $key, $value)) return $value; - } - - return value($default); - } -} - -if ( ! function_exists('array_forget')) -{ - /** - * Remove an array item from a given array using "dot" notation. - * - * @param array $array - * @param string $key - * @return void - */ - function array_forget(&$array, $key) - { - $keys = explode('.', $key); - - while (count($keys) > 1) - { - $key = array_shift($keys); - - if ( ! isset($array[$key]) or ! is_array($array[$key])) - { - return; - } - - $array =& $array[$key]; - } - - unset($array[array_shift($keys)]); - } -} - -if ( ! function_exists('array_get')) -{ - /** - * Get an item from an array using "dot" notation. - * - * @param array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - function array_get($array, $key, $default = null) - { - if (is_null($key)) return $array; - - foreach (explode('.', $key) as $segment) - { - if ( ! is_array($array) or ! array_key_exists($segment, $array)) - { - return value($default); - } - - $array = $array[$segment]; - } - - return $array; - } -} - -if ( ! function_exists('array_only')) -{ - /** - * Get a subset of the items from the given array. - * - * @param array $array - * @param array $keys - * @return array - */ - function array_only($array, $keys) - { - return array_intersect_key($array, array_flip((array) $keys)); - } -} - -if ( ! function_exists('array_pluck')) -{ - /** - * Pluck an array of values from an array. - * - * @param array $array - * @param string $key - * @return array - */ - function array_pluck($array, $key) - { - return array_map(function($v) use ($key) - { - return is_object($v) ? $v->$key : $v[$key]; - - }, $array); - } -} - -if ( ! function_exists('array_set')) -{ - /** - * Set an array item to a given value using "dot" notation. - * - * If no key is given to the method, the entire array will be replaced. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return void - */ - function array_set(&$array, $key, $value) - { - if (is_null($key)) return $array = $value; - - $keys = explode('.', $key); - - while (count($keys) > 1) - { - $key = array_shift($keys); - - // If the key doesn't exist at this depth, we will just create an empty array - // to hold the next value, allowing us to create the arrays to hold final - // values at the correct depth. Then we'll keep digging into the array. - if ( ! isset($array[$key]) or ! is_array($array[$key])) - { - $array[$key] = array(); - } - - $array =& $array[$key]; - } - - $array[array_shift($keys)] = $value; - } -} - -if ( ! function_exists('asset')) -{ - /** - * Generate an asset path for the application. - * - * @param string $path - * @param bool $secure - * @return string - */ - function asset($path, $secure = null) - { - $app = app(); - - return $app['url']->asset($path, $secure); - } -} - -if ( ! function_exists('base_path')) -{ - /** - * Get the path to the base of the install. - * - * @return string - */ - function base_path() - { - return app()->make('path.base'); - } -} - -if ( ! function_exists('camel_case')) -{ - /** - * Convert a value to camel case. - * - * @param string $value - * @return string - */ - function camel_case($value) - { - return Illuminate\Support\Str::camel($value); - } -} - -if ( ! function_exists('class_basename')) -{ - /** - * Get the class "basename" of the given object / class. - * - * @param string|object $class - * @return string - */ - function class_basename($class) - { - $class = is_object($class) ? get_class($class) : $class; - - return basename(str_replace('\\', '/', $class)); - } -} - -if ( ! function_exists('csrf_token')) -{ - /** - * Get the CSRF token value. - * - * @return string - */ - function csrf_token() - { - $app = app(); - - if (isset($app['session'])) - { - return $app['session']->getToken(); - } - else - { - throw new RuntimeException("Application session store not set."); - } - } -} - -if ( ! function_exists('e')) -{ - /** - * Escape HTML entities in a string. - * - * @param string $value - * @return string - */ - function e($value) - { - return htmlentities($value, ENT_QUOTES, 'UTF-8', false); - } -} - -if ( ! function_exists('ends_with')) -{ - /** - * Determine if a given string ends with a given needle. - * - * @param string $haystack - * @param string $needle - * @return bool - */ - function ends_with($haystack, $needle) - { - return Illuminate\Support\Str::endsWith($haystack, $needle); - } -} - -if ( ! function_exists('head')) -{ - /** - * Get the first element of an array. Useful for method chaining. - * - * @param array $array - * @return mixed - */ - function head($array) - { - return reset($array); - } -} - -if ( ! function_exists('public_path')) -{ - /** - * Get the path to the public folder. - * - * @return string - */ - function public_path() - { - return app()->make('path.public'); - } -} - -if ( ! function_exists('route')) -{ - /** - * Generate a URL to a named route. - * - * @param string $route - * @param string $parameters - * @param bool $absolute - * @return string - */ - function route($route, $parameters = array(), $absolute = true) - { - $app = app(); - - return $app['url']->route($route, $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 array $parameters - * @return string - */ - function secure_url($path, array $parameters = array()) - { - return url($path, $parameters, true); - } -} - -if ( ! function_exists('snake_case')) -{ - /** - * Convert a string to snake case. - * - * @param string $value - * @param string $delimiter - * @return string - */ - function snake_case($value, $delimiter = '_') - { - return Illuminate\Support\Str::snake($value, $delimiter); - } -} - -if ( ! function_exists('starts_with')) -{ - /** - * Determine if a string starts with a given needle. - * - * @param string $haystack - * @param string|array $needle - * @return bool - */ - function starts_with($haystack, $needles) - { - return Illuminate\Support\Str::startsWith($haystack, $needles); - } -} - -if ( ! function_exists('str_contains')) -{ - /** - * Determine if a given string contains a given sub-string. - * - * @param string $haystack - * @param string|array $needle - * @return bool - */ - function str_contains($haystack, $needle) - { - return Illuminate\Support\Str::contains($haystack, $needle); - } -} - -if ( ! function_exists('str_finish')) -{ - /** - * Cap a string with a single instance of a given value. - * - * @param string $value - * @param string $cap - * @return string - */ - function str_finish($value, $cap) - { - return Illuminate\Support\Str::finish($value, $cap); - } -} - -if ( ! function_exists('str_is')) -{ - /** - * Determine if a given string matches a given pattern. - * - * @param string $pattern - * @param string $value - * @return bool - */ - function str_is($pattern, $value) - { - return Illuminate\Support\Str::is($pattern, $value); - } -} - -if ( ! function_exists('str_plural')) -{ - /** - * Get the plural form of an English word. - * - * @param string $value - * @param int $count - * @return string - */ - function str_plural($value, $count = 2) - { - return Illuminate\Support\Str::plural($value, $count); - } -} - -if ( ! function_exists('str_random')) -{ - /** - * Generate a "random" alpha-numeric string. - * - * Should not be considered sufficient for cryptography, etc. - * - * @param int $length - * @return string - */ - function str_random($length = 16) - { - return Illuminate\Support\Str::random($length); - } -} - -if ( ! function_exists('str_singular')) -{ - /** - * Get the singular form of an English word. - * - * @param string $value - * @return string - */ - function str_singular($value) - { - return Illuminate\Support\Str::singular($value); - } -} - -if ( ! function_exists('studly_case')) -{ - /** - * Convert a value to studly caps case. - * - * @param string $value - * @return string - */ - function studly_case($value) - { - return Illuminate\Support\Str::studly($value); - } -} - -if ( ! function_exists('trans')) -{ - /** - * Translate the given message. - * - * @param string $id - * @param array $parameters - * @param string $domain - * @param string $locale - * @return string - */ - function trans($id, $parameters = array(), $domain = 'messages', $locale = null) - { - $app = app(); - - return $app['translator']->trans($id, $parameters, $domain, $locale); - } -} - -if ( ! function_exists('trans_choice')) -{ - /** - * Translates the given message based on a count. - * - * @param string $id - * @param int $number - * @param array $parameters - * @param string $domain - * @param string $locale - * @return string - */ - function trans_choice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null) - { - $app = app(); - - return $app['translator']->transChoice($id, $number, $parameters, $domain, $locale); - } -} - -if ( ! function_exists('url')) -{ - /** - * Generate a url for the application. - * - * @param string $path - * @param array $parameters - * @param bool $secure - * @return string - */ - function url($path = null, array $parameters = array(), $secure = null) - { - $app = app(); - - return $app['url']->to($path, $parameters, $secure); - } -} - -if ( ! function_exists('value')) -{ - /** - * Return the default value of the given value. - * - * @param mixed $value - * @return mixed - */ - function value($value) - { - return $value instanceof Closure ? $value() : $value; - } -} - -if ( ! function_exists('with')) -{ - /** - * Return the given object. Useful for chaining. - * - * @param mixed $object - * @return mixed - */ - function with($object) - { - return $object; - } -} class App{ /** * @var Illuminate\Foundation\Application $realClass diff --git a/src/Barryvdh/LaravelIdeHelper/GeneratorCommand.php b/src/Barryvdh/LaravelIdeHelper/GeneratorCommand.php index 66b3e6e..bd59aab 100644 --- a/src/Barryvdh/LaravelIdeHelper/GeneratorCommand.php +++ b/src/Barryvdh/LaravelIdeHelper/GeneratorCommand.php @@ -31,7 +31,13 @@ class GeneratorCommand extends Command { $filename = $this->argument('filename'); $aliases = \Config::get('laravel-ide-helper::aliases'); - $helpers = \Config::get('laravel-ide-helper::helpers'); + + if( $this->option('helpers') || (\Config::get('laravel-ide-helper::include_helpers') && ! $this->option('nohelpers'))){ + $helpers = \Config::get('laravel-ide-helper::helper_files'); + }else{ + $helpers = array(); + } + $content = $this->generateDocs($aliases, $helpers); $written = \File::put($filename, $content); @@ -56,6 +62,19 @@ class GeneratorCommand extends Command { ); } + /** + * Get the console command options. + * + * @return array + */ + protected function getOptions() + { + return array( + array('helpers', "H", InputOption::VALUE_NONE, 'Include the helper files'), + array('nohelpers', "N", InputOption::VALUE_NONE, 'Do not include the helper files'), + ); + } + protected function generateDocs($aliases, $helpers){ $d = new Parser(); $d->setAllowInherited(true); diff --git a/src/config/config.php b/src/config/config.php index 37d06b6..d1c1d0f 100644 --- a/src/config/config.php +++ b/src/config/config.php @@ -18,11 +18,14 @@ return array( | Helper files to include |-------------------------------------------------------------------------- | - | Include all user-defined functions. + | Include helper files. By default not included, but can be toggled with the + | -- helpers (-H) option. Extra helper files can be included. | */ - 'helpers' => array( + 'include_helpers' => false, + + 'helper_files' => array( base_path().'/vendor/laravel/framework/src/Illuminate/Support/helpers.php', ),