Compare commits

..
30 Commits
Author SHA1 Message Date
Barry vd. Heuvel 765a274c05 More methods 2015-03-16 14:26:28 +01:00
Barry vd. Heuvel b6a5262f3b TWeak meta methods 2015-03-16 14:14:57 +01:00
Barry vd. Heuvel d922d7e7ce Add actual command 2015-03-16 13:13:00 +01:00
Barry vd. Heuvel 89240e3ceb Add gist 2015-03-16 13:05:56 +01:00
Barry vd. Heuvel d9077b753c Note about missing classes. 2015-03-16 13:01:21 +01:00
Barry vd. Heuvel 683ed695a5 Fix views 2015-03-16 12:59:27 +01:00
Barry vd. Heuvel f8c4d4e77a Fix class imports 2015-03-16 12:52:48 +01:00
Barry vd. Heuvel b1a4494b1c Add note about meta file 2015-03-16 12:40:17 +01:00
Barry vd. Heuvel 70c06f5b37 Add meta command for phpstorm 2015-03-16 12:14:15 +01:00
Barry vd. Heuvel 81b7febfc6 Merge pull request #175 from robgeorgeuk/patch-1
New publish config syntax for Laravel 5
2015-02-23 16:55:54 +01:00
Rob George 208043b56f New publish config syntax for Laravel 5 2015-02-23 15:45:25 +00:00
Barry vd. Heuvel 4cd891eadc Merge pull request #169 from mattwells/master
Authenticatable Contract for User model
2015-02-17 13:55:39 +01:00
Matt Wells 7917ba911f Authenticatable Contract for User model 2015-02-17 10:54:52 +00:00
Barry vd. Heuvel 1f5e436d00 Merge pull request #167 from Flynsarmy/octoberConfig
Add support for October CMS config
2015-02-12 10:50:01 +01:00
flynsarmy fb3280eaff Add support for October CMS config 2015-02-12 19:03:29 +10:00
Barry vd. Heuvel 800ac05377 Revert
wrong branch
2015-02-07 23:18:26 +01:00
Barry vd. Heuvel 50059faa6f Add constraint
Fixes #164
2015-02-07 23:10:38 +01:00
Barry vd. Heuvel bb8d0169ba Merge pull request #162 from claar/patch-1
Bump L4 version number
2015-02-05 18:11:23 +01:00
Ben Claar fe692a4e77 Bump L4 version number 2015-02-05 11:03:19 -06:00
Barry vd. Heuvel c3a622fcc9 Rename 1.8 branch 2015-02-05 09:11:12 +01:00
Barry vd. Heuvel 317ef794a5 Check for correct facades 2015-02-04 09:12:01 +01:00
Barry vd. Heuvel 5c846ca16a Merge pull request #155 from Flynsarmy/authMethodExists
Check for driver method on Auth facade
2015-02-04 07:41:52 +01:00
Barry vd. Heuvel 1d4df779d8 Update branches 2015-02-03 21:01:58 +01:00
Barry vd. Heuvel 8f0d346eaa Tweak config 2015-02-03 20:57:49 +01:00
Barry vd. Heuvel 73003c0bea Swap resource arguments 2015-01-29 08:13:38 +01:00
Barry vd. Heuvel f12c785688 Skip Redis if not available 2015-01-28 10:04:48 +01:00
Barry vd. Heuvel c0aaabb6d7 Update config 2015-01-28 10:02:50 +01:00
Barry vd. Heuvel 1e6752a29f Update readme 2015-01-28 09:38:57 +01:00
Barry vd. Heuvel ab50c245d0 Update config/resources for L5 2015-01-28 09:34:45 +01:00
flynsarmy ab85ca4c5a Check for driver method on Auth facade 2015-01-28 14:31:20 +10:00
11 changed files with 87 additions and 111 deletions
+5 -5
View File
@@ -10,10 +10,10 @@
} }
], ],
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.4.0",
"illuminate/support": "4.x", "illuminate/support": "5.0.x",
"illuminate/console": "4.x", "illuminate/console": "5.0.x",
"illuminate/filesystem": "4.x", "illuminate/filesystem": "5.0.x",
"phpdocumentor/reflection-docblock": "2.0.x", "phpdocumentor/reflection-docblock": "2.0.x",
"symfony/class-loader": "~2.3" "symfony/class-loader": "~2.3"
}, },
@@ -30,7 +30,7 @@
}, },
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.11-dev" "dev-master": "2.0-dev"
} }
} }
} }
@@ -1,7 +1,5 @@
<?php <?php
use Illuminate\Support\Facades\Config;
return array( return array(
/* /*
@@ -43,7 +41,7 @@ return array(
*/ */
'model_locations' => array( 'model_locations' => array(
'app/models', 'app',
), ),
@@ -57,7 +55,6 @@ return array(
*/ */
'extra' => array( 'extra' => array(
'Artisan' => array('Illuminate\Foundation\Artisan'),
'Eloquent' => array('Illuminate\Database\Eloquent\Builder', 'Illuminate\Database\Query\Builder'), 'Eloquent' => array('Illuminate\Database\Eloquent\Builder', 'Illuminate\Database\Query\Builder'),
'Session' => array('Illuminate\Session\Store'), 'Session' => array('Illuminate\Session\Store'),
), ),
@@ -86,7 +83,7 @@ return array(
*/ */
'interfaces' => array( 'interfaces' => array(
'\Illuminate\Auth\UserInterface' => Config::get('auth.model', 'User'), '\Illuminate\Contracts\Auth\Authenticatable' => config('auth.model', 'App\User'),
) )
); );
-5
View File
@@ -1,5 +0,0 @@
{
"providers": [
"Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
]
}
+9 -8
View File
@@ -1,7 +1,7 @@
## Laravel IDE Helper Generator ## Laravel 5 IDE Helper Generator
[![Latest Stable Version](https://poser.pugx.org/barryvdh/laravel-ide-helper/version.png)](https://packagist.org/packages/barryvdh/laravel-ide-helper) [![Total Downloads](https://poser.pugx.org/barryvdh/laravel-ide-helper/d/total.png)](https://packagist.org/packages/barryvdh/laravel-ide-helper) [![Latest Stable Version](https://poser.pugx.org/barryvdh/laravel-ide-helper/version.png)](https://packagist.org/packages/barryvdh/laravel-ide-helper) [![Total Downloads](https://poser.pugx.org/barryvdh/laravel-ide-helper/d/total.png)](https://packagist.org/packages/barryvdh/laravel-ide-helper)
### For Laravel 5, check the [2.0 branch](https://github.com/barryvdh/laravel-ide-helper) ### For Laravel 4.x, check [version 1.11](https://github.com/barryvdh/laravel-ide-helper/tree/1.11)
### Complete phpDocs, directly from the source ### Complete phpDocs, directly from the source
@@ -27,14 +27,15 @@ Pre-generated example: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
> Note: This is only available in the `@dev` stability, until a new release is tagged. > Note: This is only available in the `@dev` stability, until a new release is tagged.
> Note: You might need to restart PhpStorm and make sure `.phpstorm.meta.php` is indexed. > Note: You might need to restart PhpStorm and make sure `.phpstorm.meta.php` is indexed.
> Note: When you receive a FatalException about a class that is not found, check your config (For example, remove S3 as cloud driver when you don't have S3 configured. Remove Redis ServiceProvider when you don't use it.)
### Automatic phpDoc generation for Laravel Facades ### Automatic phpDoc generation for Laravel Facades
Require this package with composer using the following command: Require this package with composer using the following command:
composer require barryvdh/laravel-ide-helper ~1.11 composer require barryvdh/laravel-ide-helper
After updating composer, add the ServiceProvider to the providers array in app/config/app.php After updating composer, add the ServiceProvider to the providers array in config/app.php
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
@@ -56,7 +57,7 @@ You can configure your composer.json to do this after each commit:
You can also publish the config-file to change implementations (ie. interface to specific class) or set defaults for --helpers or --sublime. You can also publish the config-file to change implementations (ie. interface to specific class) or set defaults for --helpers or --sublime.
php artisan config:publish barryvdh/laravel-ide-helper php artisan vendor:publish --provider=barryvdh/laravel-ide-helper --tag=config
The generator tries to identify the real class, but if it cannot be found, you can define it in the config file. The generator tries to identify the real class, but if it cannot be found, you can define it in the config file.
@@ -68,7 +69,7 @@ The Illuminate/Support/helpers.php is already set-up, but you can add/remove you
### Automatic phpDocs for Models ### Automatic phpDocs for Models
> **Note:** Since v1.10 you need to require `doctrine/dbal: ~2.3` in your own composer.json. > You need to require `doctrine/dbal: ~2.3` in your own composer.json to get database columns.
If you don't want to write your properties yourself, you can use the command `ide-helper:models` to generate If you don't want to write your properties yourself, you can use the command `ide-helper:models` to generate
phpDocs, based on table columns, relations and getters/setters. You can write the comments directly to your Model file, using the `--write (-W)` option. By default, you are asked to overwrite or write to a separate file (\_ide\_helper\_models.php) (You can force No with `--nowrite (-N)`). phpDocs, based on table columns, relations and getters/setters. You can write the comments directly to your Model file, using the `--write (-W)` option. By default, you are asked to overwrite or write to a separate file (\_ide\_helper\_models.php) (You can force No with `--nowrite (-N)`).
@@ -97,9 +98,9 @@ By default, models in app/models are scanned. The optional argument tells what m
You can also scan a different directory, using the --dir option (relative from the base path): You can also scan a different directory, using the --dir option (relative from the base path):
php artisan ide-helper:models --dir="app/workbench/name/package/models" --dir="app/src/Model" php artisan ide-helper:models --dir="path/to/models" --dir="app/src/Model"
You can publish the config file (`php artisan config:publish barryvdh/laravel-ide-helper`) and set the default directories. You can publish the config file (`php artisan vendor:publish`) and set the default directories.
Models can be ignored using the --ignore (-I) option Models can be ignored using the --ignore (-I) option
@@ -1,39 +1,39 @@
<?= '<?php' ?> <?= '<?php' ?>
/** /**
* An helper file for Laravel 4, to provide autocomplete information to your IDE * An helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel <?= $version ?> on <?= date("Y-m-d") ?>. * Generated for Laravel <?= $version ?> on <?= date("Y-m-d") ?>.
* *
* @author Barry vd. Heuvel <barryvdh@gmail.com> * @author Barry vd. Heuvel <barryvdh@gmail.com>
* @see https://github.com/barryvdh/laravel-ide-helper * @see https://github.com/barryvdh/laravel-ide-helper
*/ */
<?php foreach($namespaces as $namespace => $aliases): ?> <?php foreach($namespaces as $namespace => $aliases): ?>
namespace <?= $namespace == '__root' ? '' : $namespace ?>{ namespace <?= $namespace == '__root' ? '' : $namespace ?>{
<?php if($namespace == '__root'): ?> <?php if($namespace == '__root'): ?>
exit("This file should not be included, only analyzed by your IDE"); exit("This file should not be included, only analyzed by your IDE");
<?= $helpers ?> <?= $helpers ?>
<?php endif; ?> <?php endif; ?>
<?php foreach($aliases as $alias): ?> <?php foreach($aliases as $alias): ?>
<?= $alias->getClassType() ?> <?= $alias->getShortName() ?> <?= $alias->getExtends() ? 'extends ' . $alias->getExtends() : '' ?>{ <?= $alias->getClassType() ?> <?= $alias->getShortName() ?> <?= $alias->getExtends() ? 'extends ' . $alias->getExtends() : '' ?>{
<?php foreach($alias->getMethods() as $method): ?> <?php foreach($alias->getMethods() as $method): ?>
<?= trim($method->getDocComment(' ')) ?> <?= trim($method->getDocComment(' ')) ?>
public static function <?= $method->getName() ?>(<?= $method->getParamsWithDefault() ?>){<?php if($method->getDeclaringClass() !== $method->getRoot()): ?> public static function <?= $method->getName() ?>(<?= $method->getParamsWithDefault() ?>){<?php if($method->getDeclaringClass() !== $method->getRoot()): ?>
//Method inherited from <?= $method->getDeclaringClass() ?> //Method inherited from <?= $method->getDeclaringClass() ?>
<?php endif; ?> <?php endif; ?>
<?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRoot() ?>::<?= $method->getName() ?>(<?= $method->getParams() ?>); <?= $method->shouldReturn() ? 'return ': '' ?><?= $method->getRoot() ?>::<?= $method->getName() ?>(<?= $method->getParams() ?>);
} }
<?php endforeach; ?> <?php endforeach; ?>
} }
<?php endforeach; ?> <?php endforeach; ?>
} }
<?php endforeach; ?> <?php endforeach; ?>
+5 -5
View File
@@ -59,7 +59,7 @@ class GeneratorCommand extends Command
* @param \Illuminate\View\Factory $view * @param \Illuminate\View\Factory $view
*/ */
public function __construct( public function __construct(
ConfigRepository $config, /*ConfigRepository */ $config,
Filesystem $files, /* Illuminate\View\Factory */ Filesystem $files, /* Illuminate\View\Factory */
$view $view
) { ) {
@@ -97,8 +97,8 @@ class GeneratorCommand extends Command
$helpers = ''; $helpers = '';
if ($this->option('helpers') || ($this->config->get('laravel-ide-helper::include_helpers'))) { if ($this->option('helpers') || ($this->config->get('ide-helper.include_helpers'))) {
foreach ($this->config->get('laravel-ide-helper::helper_files', array()) as $helper) { foreach ($this->config->get('ide-helper.helper_files', array()) as $helper) {
if (file_exists($helper)) { if (file_exists($helper)) {
$helpers .= str_replace(array('<?php', '?>'), '', $this->files->get($helper)); $helpers .= str_replace(array('<?php', '?>'), '', $this->files->get($helper));
} }
@@ -139,7 +139,7 @@ class GeneratorCommand extends Command
*/ */
protected function getArguments() protected function getArguments()
{ {
$filename = $this->config->get('laravel-ide-helper::filename'); $filename = $this->config->get('ide-helper.filename');
return array( return array(
array( array(
@@ -155,7 +155,7 @@ class GeneratorCommand extends Command
*/ */
protected function getOptions() protected function getOptions()
{ {
$format = $this->config->get('laravel-ide-helper::format'); $format = $this->config->get('ide-helper.format');
return array( return array(
array('format', "F", InputOption::VALUE_OPTIONAL, 'The format for the IDE Helper', $format), array('format', "F", InputOption::VALUE_OPTIONAL, 'The format for the IDE Helper', $format),
+5 -3
View File
@@ -43,6 +43,8 @@ class MetaCommand extends Command {
protected $methods = [ protected $methods = [
'\Illuminate\Foundation\Application::make', '\Illuminate\Foundation\Application::make',
'\Illuminate\Contracts\Foundation\Application::make',
'\Illuminate\Contracts\Container\Container::make',
'\Illuminate\Container\Container::make', '\Illuminate\Container\Container::make',
'\App::make', '\App::make',
'app', 'app',
@@ -80,12 +82,12 @@ class MetaCommand extends Command {
$this->error("Cannot make $abstract: ".$e->getMessage()); $this->error("Cannot make $abstract: ".$e->getMessage());
} }
} }
$content = $this->view->make('laravel-ide-helper::meta', [ $content = $this->view->make('ide-helper::meta', [
'bindings' => $bindings, 'bindings' => $bindings,
'methods' => $this->methods, 'methods' => $this->methods,
])->render(); ])->render();
$written = $this->files->put($filename, $content); $written = $this->files->put($filename, $content);
if ($written !== false) { if ($written !== false) {
+1 -1
View File
@@ -60,7 +60,7 @@ class ModelsCommand extends Command
$filename = $this->option('filename'); $filename = $this->option('filename');
$this->write = $this->option('write'); $this->write = $this->option('write');
$this->dirs = array_merge( $this->dirs = array_merge(
$this->laravel['config']->get('laravel-ide-helper::model_locations'), $this->laravel['config']->get('ide-helper.model_locations'),
$this->option('dir') $this->option('dir')
); );
$model = $this->argument('model'); $model = $this->argument('model');
+13 -7
View File
@@ -36,7 +36,7 @@ class Generator
* @param \Symfony\Component\Console\Output\OutputInterface $output * @param \Symfony\Component\Console\Output\OutputInterface $output
* @param string $helpers * @param string $helpers
*/ */
public function __construct(ConfigRepository $config, public function __construct(/*ConfigRepository */ $config,
/* Illuminate\View\Factory */ $view, /* Illuminate\View\Factory */ $view,
OutputInterface $output = null, OutputInterface $output = null,
$helpers = '' $helpers = ''
@@ -47,9 +47,9 @@ class Generator
// Find the drivers to add to the extra/interfaces // Find the drivers to add to the extra/interfaces
$this->detectDrivers(); $this->detectDrivers();
$this->extra = array_merge($this->extra, $this->config->get('laravel-ide-helper::extra')); $this->extra = array_merge($this->extra, $this->config->get('ide-helper.extra'));
$this->magic = array_merge($this->magic, $this->config->get('laravel-ide-helper::magic')); $this->magic = array_merge($this->magic, $this->config->get('ide-helper.magic'));
$this->interfaces = array_merge($this->interfaces, $this->config->get('laravel-ide-helper::interfaces')); $this->interfaces = array_merge($this->interfaces, $this->config->get('ide-helper.interfaces'));
// Make all interface classes absolute // Make all interface classes absolute
foreach ($this->interfaces as &$interface) { foreach ($this->interfaces as &$interface) {
$interface = '\\' . ltrim($interface, '\\'); $interface = '\\' . ltrim($interface, '\\');
@@ -77,7 +77,7 @@ class Generator
public function generatePhpHelper() public function generatePhpHelper()
{ {
$app = app(); $app = app();
return $this->view->make('laravel-ide-helper::ide-helper') return $this->view->make('ide-helper::helper')
->with('namespaces', $this->getNamespaces()) ->with('namespaces', $this->getNamespaces())
->with('helpers', $this->helpers) ->with('helpers', $this->helpers)
->with('version', $app::VERSION) ->with('version', $app::VERSION)
@@ -113,8 +113,8 @@ class Generator
protected function detectDrivers() protected function detectDrivers()
{ {
try{ try{
if (class_exists('Auth') && is_a('Auth', '\Illuminate\Support\Facades\Auth', true)) { if (class_exists('Auth') && is_a('Auth', '\Illuminate\Support\Facades\Auth', true)) {
$class = get_class(\Auth::driver()); $class = get_class(\Auth::driver());
$this->extra['Auth'] = array($class); $this->extra['Auth'] = array($class);
$this->interfaces['\Illuminate\Auth\UserProviderInterface'] = $class; $this->interfaces['\Illuminate\Auth\UserProviderInterface'] = $class;
@@ -167,6 +167,12 @@ class Generator
// Get all aliases // Get all aliases
foreach (AliasLoader::getInstance()->getAliases() as $name => $facade) { foreach (AliasLoader::getInstance()->getAliases() as $name => $facade) {
// Skip the Redis facade, if not available (otherwise Fatal PHP Error)
if ($facade == 'Illuminate\Support\Facades\Redis' && !class_exists('Predis\Client')) {
continue;
}
$magicMethods = array_key_exists($name, $this->magic) ? $this->magic[$name] : array(); $magicMethods = array_key_exists($name, $this->magic) ? $this->magic[$name] : array();
$alias = new Alias($name, $facade, $magicMethods, $this->interfaces); $alias = new Alias($name, $facade, $magicMethods, $this->interfaces);
if ($alias->isValid()) { if ($alias->isValid()) {
+8 -33
View File
@@ -32,7 +32,11 @@ class IdeHelperServiceProvider extends ServiceProvider
*/ */
public function boot() public function boot()
{ {
$this->package('barryvdh/laravel-ide-helper', 'laravel-ide-helper', __DIR__); $viewPath = __DIR__.'/../resources/views';
$this->loadViewsFrom($viewPath, 'ide-helper');
$configPath = __DIR__ . '/../config/ide-helper.php';
$this->publishes([$configPath => config_path('ide-helper.php')], 'config');
} }
/** /**
@@ -42,6 +46,9 @@ class IdeHelperServiceProvider extends ServiceProvider
*/ */
public function register() public function register()
{ {
$configPath = __DIR__ . '/../config/ide-helper.php';
$this->mergeConfigFrom($configPath, 'ide-helper');
$this->app['command.ide-helper.generate'] = $this->app->share( $this->app['command.ide-helper.generate'] = $this->app->share(
function ($app) { function ($app) {
return new GeneratorCommand($app['config'], $app['files'], $app['view']); return new GeneratorCommand($app['config'], $app['files'], $app['view']);
@@ -72,37 +79,5 @@ class IdeHelperServiceProvider extends ServiceProvider
{ {
return array('command.ide-helper.generate', 'command.ide-helper.models'); return array('command.ide-helper.generate', 'command.ide-helper.models');
} }
/**
* Register the package's component namespaces.
*
* @param string $package
* @param string $namespace
* @param string $path
* @return void
*/
public function package($package, $namespace = null, $path = 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');
}
} }