Add test config, CS rules and fix CS

This commit is contained in:
Barry vd. Heuvel
2016-06-08 21:36:25 +02:00
parent d734ecabcc
commit bae462604e
17 changed files with 1095 additions and 919 deletions
+2 -3
View File
@@ -17,7 +17,6 @@ use Illuminate\Filesystem\Filesystem;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
/**
* A command to generate autocomplete information for your IDE
*
@@ -60,7 +59,8 @@ class GeneratorCommand extends Command
*/
public function __construct(
/*ConfigRepository */ $config,
Filesystem $files, /* Illuminate\View\Factory */
Filesystem $files,
/* Illuminate\View\Factory */
$view
) {
$this->config = $config;
@@ -166,5 +166,4 @@ class GeneratorCommand extends Command
array('sublime', "S", InputOption::VALUE_NONE, 'DEPRECATED: Use different style for SublimeText CodeIntel'),
);
}
}
+6 -4
View File
@@ -19,7 +19,8 @@ use Symfony\Component\Console\Output\OutputInterface;
*
* @author Barry vd. Heuvel <[email protected]>
*/
class MetaCommand extends Command {
class MetaCommand extends Command
{
/**
* The console command name.
@@ -54,7 +55,8 @@ class MetaCommand extends Command {
* @param \Illuminate\Contracts\Filesystem\Filesystem $files
* @param \Illuminate\Contracts\View\Factory $view
*/
public function __construct($files, $view) {
public function __construct($files, $view)
{
$this->files = $files;
$this->view = $view;
parent::__construct();
@@ -81,7 +83,7 @@ class MetaCommand extends Command {
if (is_object($concrete)) {
$bindings[$abstract] = get_class($concrete);
}
}catch (\Exception $e) {
} catch (\Exception $e) {
if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
$this->comment("Cannot make '$abstract': ".$e->getMessage());
}
@@ -105,7 +107,7 @@ class MetaCommand extends Command {
/**
* Get a list of abstracts from the Laravel Application.
*
*
* @return array
*/
protected function getAbstracts()
+28 -18
View File
@@ -75,8 +75,8 @@ class ModelsCommand extends Command
$filename = $this->option('filename');
$this->write = $this->option('write');
$this->dirs = array_merge(
$this->laravel['config']->get('ide-helper.model_locations'),
$this->option('dir')
$this->laravel['config']->get('ide-helper.model_locations'),
$this->option('dir')
);
$model = $this->argument('model');
$ignore = $this->option('ignore');
@@ -85,7 +85,7 @@ class ModelsCommand extends Command
//If filename is default and Write is not specified, ask what to do
if (!$this->write && $filename === $this->filename && !$this->option('nowrite')) {
if ($this->confirm(
"Do you want to overwrite the existing model files? Choose no to write to $filename instead? (Yes/No): "
"Do you want to overwrite the existing model files? Choose no to write to $filename instead? (Yes/No): "
)
) {
$this->write = true;
@@ -201,12 +201,12 @@ class ModelsCommand extends Command
$this->error("Exception: " . $e->getMessage() . "\nCould not analyze class $name.");
}
}
}
if (!$hasDoctrine) {
$this->error(
'Warning: `"doctrine/dbal": "~2.3"` is required to load database information. Please require that in your composer.json and run `composer update`.'
'Warning: `"doctrine/dbal": "~2.3"` is required to load database information. '.
'Please require that in your composer.json and run `composer update`.'
);
}
@@ -291,7 +291,11 @@ class ModelsCommand extends Command
$comment = $column->getComment();
$this->setProperty($name, $type, true, true, $comment);
$this->setMethod(Str::camel("where_" . $name), '\Illuminate\Database\Query\Builder|\\' . get_class($model), array('$value'));
$this->setMethod(
Str::camel("where_" . $name),
'\Illuminate\Database\Query\Builder|\\' . get_class($model),
array('$value')
);
}
}
}
@@ -307,7 +311,7 @@ class ModelsCommand extends Command
if (Str::startsWith($method, 'get') && Str::endsWith(
$method,
'Attribute'
) && $method !== 'getAttribute'
) && $method !== 'getAttribute'
) {
//Magic get<name>Attribute
$name = Str::snake(substr($method, 3, -9));
@@ -317,7 +321,7 @@ class ModelsCommand extends Command
} elseif (Str::startsWith($method, 'set') && Str::endsWith(
$method,
'Attribute'
) && $method !== 'setAttribute'
) && $method !== 'setAttribute'
) {
//Magic set<name>Attribute
$name = Str::snake(substr($method, 3, -9));
@@ -334,8 +338,9 @@ class ModelsCommand extends Command
array_shift($args);
$this->setMethod($name, '\Illuminate\Database\Query\Builder|\\' . $reflection->class, $args);
}
} elseif (!method_exists('Illuminate\Database\Eloquent\Model', $method) && !Str::startsWith($method, 'get')) {
} elseif (!method_exists('Illuminate\Database\Eloquent\Model', $method)
&& !Str::startsWith($method, 'get')
) {
//Use reflection to inspect the code, based on Illuminate/Support/SerializableClosure.php
$reflection = new \ReflectionMethod($model, $method);
@@ -364,24 +369,29 @@ class ModelsCommand extends Command
) as $relation) {
$search = '$this->' . $relation . '(';
if ($pos = stripos($code, $search)) {
//Resolve the relation's model to a Relation object.
$relationObj = $model->$method();
if ($relationObj instanceof Relation) {
$relatedModel = '\\' . get_class($relationObj->getRelated());
if (in_array($relation, ['hasManyThrough', 'belongsToMany', 'hasMany', 'morphMany', 'morphToMany'])) {
$relations = ['hasManyThrough', 'belongsToMany', 'hasMany', 'morphMany', 'morphToMany'];
if (in_array($relation, $relations)) {
//Collection or array of models (because Collection is Arrayable)
$this->setProperty(
$method,
$this->getCollectionClass($relatedModel) . '|' . $relatedModel . '[]',
true,
null
$method,
$this->getCollectionClass($relatedModel) . '|' . $relatedModel . '[]',
true,
null
);
} elseif ($relation === "morphTo") {
// Model isn't specified because relation is polymorphic
$this->setProperty($method, '\Illuminate\Database\Eloquent\Model|\Eloquent', true, null);
$this->setProperty(
$method,
'\Illuminate\Database\Eloquent\Model|\Eloquent',
true,
null
);
} else {
//Single model is returned
$this->setProperty($method, $relatedModel, true, null);
@@ -401,7 +411,7 @@ class ModelsCommand extends Command
* @param bool|null $write
* @param string|null $comment
*/
protected function setProperty($name, $type = null, $read = null, $write = null, $comment='')
protected function setProperty($name, $type = null, $read = null, $write = null, $comment = '')
{
if (!isset($this->properties[$name])) {
$this->properties[$name] = array();