mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-22 20:13:08 +00:00
Improve MetaCommand to support injection like ArrayAccess
This commit is contained in:
+13
-14
@@ -17,21 +17,18 @@ use Symfony\Component\Console\Input\InputOption;
|
||||
* A command to generate phpstorm meta data
|
||||
*
|
||||
* @author Barry vd. Heuvel <[email protected]>
|
||||
* @property \Illuminate\Container\Container $laravel
|
||||
*/
|
||||
class MetaCommand extends Command {
|
||||
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
* @var string
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $name = 'ide-helper:meta';
|
||||
protected $filename = '.phpstorm.meta.php';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $description = 'Generate metadata for PhpStorm';
|
||||
|
||||
@@ -43,19 +40,23 @@ class MetaCommand extends Command {
|
||||
|
||||
protected $methods = array(
|
||||
'\Illuminate\Foundation\Application::make',
|
||||
'new \Illuminate\Foundation\Application',
|
||||
'\Illuminate\Container\Container::make',
|
||||
'new \Illuminate\Container\Container',
|
||||
'\App::make',
|
||||
'app',
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @param \Illuminate\Filesystem\Filesystem $files
|
||||
* @param \Illuminate\View\Factory $view
|
||||
* @param \Illuminate\Container\Container $app
|
||||
*/
|
||||
public function __construct($files, $view) {
|
||||
$this->files = $files;
|
||||
$this->view = $view;
|
||||
public function __construct($app)
|
||||
{
|
||||
$this->laravel = $app;
|
||||
$this->files = $app['files'];
|
||||
$this->view = $app['view'];
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
@@ -104,9 +105,7 @@ class MetaCommand extends Command {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the console command options.
|
||||
*
|
||||
* @return array
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getOptions()
|
||||
{
|
||||
|
||||
@@ -15,20 +15,19 @@ use Barryvdh\LaravelIdeHelper\Console\MetaCommand;
|
||||
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
|
||||
use Barryvdh\LaravelIdeHelper\Console\GeneratorCommand;
|
||||
|
||||
/**
|
||||
* @property \Illuminate\Container\Container $app
|
||||
*/
|
||||
class IdeHelperServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
/**
|
||||
* Indicates if loading of the provider is deferred.
|
||||
*
|
||||
* @var bool
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defer = true;
|
||||
|
||||
/**
|
||||
* Bootstrap the application events.
|
||||
*
|
||||
* @return void
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
@@ -36,9 +35,7 @@ class IdeHelperServiceProvider extends ServiceProvider
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the service provider.
|
||||
*
|
||||
* @return void
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
@@ -49,14 +46,14 @@ class IdeHelperServiceProvider extends ServiceProvider
|
||||
);
|
||||
|
||||
$this->app['command.ide-helper.models'] = $this->app->share(
|
||||
function () {
|
||||
return new ModelsCommand();
|
||||
function ($app) {
|
||||
return new ModelsCommand($app);
|
||||
}
|
||||
);
|
||||
|
||||
$this->app['command.ide-helper.meta'] = $this->app->share(
|
||||
function ($app) {
|
||||
return new MetaCommand($app['files'], $app['view']);
|
||||
return new MetaCommand($app);
|
||||
}
|
||||
);
|
||||
|
||||
@@ -64,45 +61,19 @@ class IdeHelperServiceProvider extends ServiceProvider
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the services provided by the provider.
|
||||
*
|
||||
* @return array
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function provides()
|
||||
{
|
||||
return array('command.ide-helper.generate', 'command.ide-helper.models');
|
||||
return array('command.ide-helper.generate', 'command.ide-helper.models', 'command.ide-helper.meta');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the package's component namespaces.
|
||||
*
|
||||
* @param string $package
|
||||
* @param string $namespace
|
||||
* @param string $path
|
||||
* @return void
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function package($package, $namespace = null, $path = null)
|
||||
protected function getAppViewPath($package, $namespace = null)
|
||||
{
|
||||
|
||||
// Is it possible to register the config?
|
||||
if (method_exists($this->app['config'], 'package')) {
|
||||
$this->app['config']->package($package, $path.'/config', $namespace);
|
||||
} else {
|
||||
// Load the config for now..
|
||||
$config = $this->app['files']->getRequire($path .'/config/config.php');
|
||||
foreach($config as $key => $value){
|
||||
$this->app['config']->set($namespace.'::'.$key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
// Register view files
|
||||
$appView = $this->app['path']."/views/packages/{$package}";
|
||||
if ($this->app['files']->isDirectory($appView))
|
||||
{
|
||||
$this->app['view']->addNamespace($namespace, $appView);
|
||||
}
|
||||
|
||||
$this->app['view']->addNamespace($namespace, $path.'/views');
|
||||
return $this->app['path'] . "/views/packages/{$package}";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-6
@@ -2,21 +2,21 @@
|
||||
|
||||
/**
|
||||
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
|
||||
* Generated on <?= date("Y-m-d") ?>.
|
||||
* Generated on <?= date('Y-m-d') ?>.
|
||||
*
|
||||
* @author Barry vd. Heuvel <[email protected]>
|
||||
* @see https://github.com/barryvdh/laravel-ide-helper
|
||||
*/
|
||||
|
||||
/** @noinspection PhpIllegalArrayKeyTypeInspection */
|
||||
/** @noinspection PhpUnusedLocalVariableInspection */
|
||||
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
|
||||
/** @noinspection PhpIllegalArrayKeyTypeInspection,PhpUnusedLocalVariableInspection,PhpUnnecessaryFullyQualifiedNameInspection */
|
||||
$STATIC_METHOD_TYPES = array(
|
||||
<?php foreach ($methods as $method): ?>
|
||||
<?= $method ?>('') => array(
|
||||
<?= strpos($method, 'new ') === 0 ? $method : $method . '(\'\')' ?> => array(
|
||||
<?php foreach ($bindings as $abstract => $class): ?>
|
||||
'<?= $abstract ?>' instanceof \<?= $class ?>,
|
||||
<?php endforeach ?> ),
|
||||
<?php endforeach ?>
|
||||
),
|
||||
<?php endforeach ?>
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user