mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-21 19:43:10 +00:00
Add json format
This commit is contained in:
@@ -82,6 +82,14 @@ class GeneratorCommand extends Command
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$filename = $this->argument('filename');
|
$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')) {
|
if ($this->option('memory')) {
|
||||||
$this->useMemoryDriver();
|
$this->useMemoryDriver();
|
||||||
@@ -100,7 +108,7 @@ class GeneratorCommand extends Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
$generator = new Generator($this->config, $this->view, $this->getOutput(), $helpers);
|
$generator = new Generator($this->config, $this->view, $this->getOutput(), $helpers);
|
||||||
$content = $generator->generate();
|
$content = $generator->generate($format);
|
||||||
$written = $this->files->put($filename, $content);
|
$written = $this->files->put($filename, $content);
|
||||||
|
|
||||||
if ($written !== false) {
|
if ($written !== false) {
|
||||||
@@ -131,12 +139,11 @@ class GeneratorCommand extends Command
|
|||||||
*/
|
*/
|
||||||
protected function getArguments()
|
protected function getArguments()
|
||||||
{
|
{
|
||||||
|
$filename = $this->config->get('laravel-ide-helper::filename');
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
'filename',
|
'filename', InputArgument::OPTIONAL, 'The path to the helper file', $filename
|
||||||
InputArgument::OPTIONAL,
|
|
||||||
'The path to the helper file',
|
|
||||||
$this->config->get('laravel-ide-helper::filename')
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -148,7 +155,10 @@ class GeneratorCommand extends Command
|
|||||||
*/
|
*/
|
||||||
protected function getOptions()
|
protected function getOptions()
|
||||||
{
|
{
|
||||||
|
$format = $this->config->get('laravel-ide-helper::format');
|
||||||
|
|
||||||
return array(
|
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('helpers', "H", InputOption::VALUE_NONE, 'Include the helper files'),
|
||||||
array('memory', "M", InputOption::VALUE_NONE, 'Use sqlite memory driver'),
|
array('memory', "M", InputOption::VALUE_NONE, 'Use sqlite memory driver'),
|
||||||
array('sublime', "S", InputOption::VALUE_NONE, 'DEPRECATED: Use different style for SublimeText CodeIntel'),
|
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;
|
* Generate the helper file contents;
|
||||||
*
|
*
|
||||||
|
* @param string $format The format to generate the helper in (php/json)
|
||||||
* @return string;
|
* @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();
|
$app = app();
|
||||||
return $this->view->make('laravel-ide-helper::ide-helper')
|
return $this->view->make('laravel-ide-helper::ide-helper')
|
||||||
@@ -68,6 +80,33 @@ class Generator
|
|||||||
->render();
|
->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()
|
protected function detectDrivers()
|
||||||
{
|
{
|
||||||
try{
|
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