Compare commits

..
10 Commits
Author SHA1 Message Date
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
9 changed files with 77 additions and 104 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\Auth\UserInterface' => config('auth.model', 'User'),
) )
); );
-5
View File
@@ -1,5 +0,0 @@
{
"providers": [
"Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
]
}
+6 -6
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.x](https://github.com/barryvdh/laravel-ide-helper/tree/v1.x)
### Complete phpDocs, directly from the source ### Complete phpDocs, directly from the source
@@ -20,7 +20,7 @@ Require this package with composer using the following command:
composer require barryvdh/laravel-ide-helper 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',
@@ -55,7 +55,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)`).
@@ -84,9 +84,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; ?>
+4 -4
View File
@@ -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),
+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');
+12 -6
View File
@@ -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
@@ -31,7 +31,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');
} }
/** /**
@@ -41,6 +45,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']);
@@ -65,37 +72,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');
}
} }