diff --git a/config/ide-helper.php b/config/ide-helper.php index e575923..24a6e28 100644 --- a/config/ide-helper.php +++ b/config/ide-helper.php @@ -1,4 +1,4 @@ - 'Monolog\Logger::addEmergency', ) ), - + /* |-------------------------------------------------------------------------- | Interface implementations @@ -81,7 +81,7 @@ return array( | are detected by the helpers, others can be listed below. | */ - + 'interfaces' => array( ), @@ -142,4 +142,16 @@ return array( */ 'model_camel_case_properties' => false, + /* + |-------------------------------------------------------------------------- + | Property Casts + |-------------------------------------------------------------------------- + | + | Cast the given "real type" to the given "type". + | + */ + 'type_overrides' => array( + 'integer' => 'int', + 'boolean' => 'bool', + ), ); diff --git a/src/Console/ModelsCommand.php b/src/Console/ModelsCommand.php index d1324fc..1cb817f 100644 --- a/src/Console/ModelsCommand.php +++ b/src/Console/ModelsCommand.php @@ -212,7 +212,6 @@ class ModelsCommand extends Command } return $output; - } @@ -279,11 +278,24 @@ class ModelsCommand extends Command if (!isset($this->properties[$name])) { continue; } else { - $this->properties[$name]['type'] = $realType; + $this->properties[$name]['type'] = $this->getTypeOverride($realType); } } } + /** + * Returns the overide type for the give type. + * + * @param string $type + * @return string + */ + protected function getTypeOverride($type) + { + $typeOverrides = $this->laravel['config']->get('ide-helper.type_overrides', array()); + + return isset($typeOverrides[$type]) ? $typeOverrides[$type] : $type; + } + /** * Load the properties from the database table. * diff --git a/src/Generator.php b/src/Generator.php index c403e24..693f682 100644 --- a/src/Generator.php +++ b/src/Generator.php @@ -118,7 +118,7 @@ class Generator { $defaultUserModel = config('auth.providers.users.model', config('auth.model', 'App\User')); $this->interfaces['\Illuminate\Contracts\Auth\Authenticatable'] = $defaultUserModel; - + try { if (class_exists('Auth') && is_a('Auth', '\Illuminate\Support\Facades\Auth', true)) { if (class_exists('\Illuminate\Foundation\Application')) { @@ -182,7 +182,6 @@ class Generator } } catch (\Exception $e) { } - } /** @@ -200,7 +199,7 @@ class Generator if ($facade == 'Illuminate\Support\Facades\Redis' && !class_exists('Predis\Client')) { continue; } - + $magicMethods = array_key_exists($name, $this->magic) ? $this->magic[$name] : array(); $alias = new Alias($name, $facade, $magicMethods, $this->interfaces); if ($alias->isValid()) { @@ -246,7 +245,7 @@ class Generator 'Storage' => 'Illuminate\Support\Facades\Storage', //'Validator' => 'Illuminate\Support\Facades\Validator', ]; - + $facades = array_merge($facades, $this->config->get('app.aliases', [])); // Only return the ones that actually exist