mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 10:07:12 +00:00
Add json format
This commit is contained in:
@@ -82,6 +82,14 @@ class GeneratorCommand extends Command
|
||||
);
|
||||
} else {
|
||||
$filename = $this->argument('filename');
|
||||
$format = $this->option('format');
|
||||
|
||||
// Strip the php extension
|
||||
if (substr($filename, -4, 4) == '.php') {
|
||||
$filename = substr($filename, 0, -4);
|
||||
}
|
||||
|
||||
$filename .= '.' . $format;
|
||||
|
||||
if ($this->option('memory')) {
|
||||
$this->useMemoryDriver();
|
||||
@@ -100,7 +108,7 @@ class GeneratorCommand extends Command
|
||||
}
|
||||
|
||||
$generator = new Generator($this->config, $this->view, $this->getOutput(), $helpers);
|
||||
$content = $generator->generate();
|
||||
$content = $generator->generate($format);
|
||||
$written = $this->files->put($filename, $content);
|
||||
|
||||
if ($written !== false) {
|
||||
@@ -131,12 +139,11 @@ class GeneratorCommand extends Command
|
||||
*/
|
||||
protected function getArguments()
|
||||
{
|
||||
$filename = $this->config->get('laravel-ide-helper::filename');
|
||||
|
||||
return array(
|
||||
array(
|
||||
'filename',
|
||||
InputArgument::OPTIONAL,
|
||||
'The path to the helper file',
|
||||
$this->config->get('laravel-ide-helper::filename')
|
||||
'filename', InputArgument::OPTIONAL, 'The path to the helper file', $filename
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -148,7 +155,10 @@ class GeneratorCommand extends Command
|
||||
*/
|
||||
protected function getOptions()
|
||||
{
|
||||
$format = $this->config->get('laravel-ide-helper::format');
|
||||
|
||||
return array(
|
||||
array('format', "F", InputOption::VALUE_OPTIONAL, 'The format for the IDE Helper', $format),
|
||||
array('helpers', "H", InputOption::VALUE_NONE, 'Include the helper files'),
|
||||
array('memory', "M", InputOption::VALUE_NONE, 'Use sqlite memory driver'),
|
||||
array('sublime', "S", InputOption::VALUE_NONE, 'DEPRECATED: Use different style for SublimeText CodeIntel'),
|
||||
|
||||
+40
-1
@@ -56,9 +56,21 @@ class Generator
|
||||
/**
|
||||
* Generate the helper file contents;
|
||||
*
|
||||
* @param string $format The format to generate the helper in (php/json)
|
||||
* @return string;
|
||||
*/
|
||||
public function generate()
|
||||
public function generate($format = 'php')
|
||||
{
|
||||
// Check if the generator for this format exists
|
||||
$method = 'generate'.ucfirst($format).'Helper';
|
||||
if (method_exists($this, $method)) {
|
||||
return $this->$method();
|
||||
}
|
||||
|
||||
return $this->generatePhpHelper();
|
||||
}
|
||||
|
||||
public function generatePhpHelper()
|
||||
{
|
||||
$app = app();
|
||||
return $this->view->make('laravel-ide-helper::ide-helper')
|
||||
@@ -68,6 +80,33 @@ class Generator
|
||||
->render();
|
||||
}
|
||||
|
||||
public function generateJsonHelper()
|
||||
{
|
||||
$classes = array();
|
||||
foreach ($this->getNamespaces() as $aliases) {
|
||||
foreach($aliases as $alias) {
|
||||
$functions = array();
|
||||
foreach ($alias->getMethods() as $method) {
|
||||
$functions[$method->getName()] = '('. $method->getParamsWithDefault().')';
|
||||
}
|
||||
$classes[$alias->getAlias()] = array(
|
||||
'functions' => $functions,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$flags = JSON_FORCE_OBJECT;
|
||||
if (defined('JSON_PRETTY_PRINT')) {
|
||||
$flags |= JSON_PRETTY_PRINT;
|
||||
}
|
||||
|
||||
return json_encode(array(
|
||||
'php' => array(
|
||||
'classes' => $classes,
|
||||
),
|
||||
), $flags);
|
||||
}
|
||||
|
||||
protected function detectDrivers()
|
||||
{
|
||||
try{
|
||||
|
||||
@@ -4,14 +4,15 @@ return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Filename
|
||||
| Filename & Format
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The default path to the helper file
|
||||
| The default filename (without extension) and the format (php or json)
|
||||
|
|
||||
*/
|
||||
|
||||
'filename' => '_ide_helper.php',
|
||||
'filename' => '_ide_helper',
|
||||
'format' => 'php',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user