Skip to content

Commit

Permalink
Add stub 'generator' for command 'make:addon'.
Browse files Browse the repository at this point in the history
  • Loading branch information
jumilla committed Oct 16, 2015
1 parent 9ffa84c commit 1ae6223
Show file tree
Hide file tree
Showing 29 changed files with 1,476 additions and 192 deletions.
363 changes: 306 additions & 57 deletions readme-ja.md

Large diffs are not rendered by default.

364 changes: 312 additions & 52 deletions readme.md

Large diffs are not rendered by default.

48 changes: 48 additions & 0 deletions sources/Addons/AddonGenerator.php
Expand Up @@ -334,6 +334,54 @@ protected function generateDebug(FileGenerator $generator, array $properties)
]);
}

protected function generateGenerator(FileGenerator $generator, array $properties)
{
$generator->directory('classes', function ($generator) use ($properties) {
$generator->directory('Providers')
->file('AddonServiceProvider.php')->template('AddonServiceProvider.php', $properties);
});

$generator->directory('config', function ($generator) use ($properties) {
$generator->file('commands.php')->template('commands.php', $properties);
});

$generator->directory('stubs', function ($generator) use ($properties) {
$generator->sourceFile('_console.stub');
$generator->sourceFile('_controller.stub');
$generator->sourceFile('_controller-resource.stub');
$generator->sourceFile('_event.stub');
$generator->sourceFile('_job.stub');
$generator->sourceFile('_job-queued.stub');
$generator->sourceFile('_listener.stub');
$generator->sourceFile('_listener-queued.stub');
$generator->sourceFile('_middleware.stub');
$generator->sourceFile('_migration.stub');
$generator->sourceFile('_migration-create.stub');
$generator->sourceFile('_migration-update.stub');
$generator->sourceFile('_model.stub');
$generator->sourceFile('_policy.stub');
$generator->sourceFile('_provider.stub');
$generator->sourceFile('_request.stub');
$generator->sourceFile('_seeder.stub');
$generator->sourceFile('_test.stub');
});

$this->generateAddonConfig($generator, [
'namespace' => $properties['namespace'],
'directories' => [
'classes',
],
'files' => [
],
'paths' => [
'config' => 'config',
],
'providers' => [
new ClassName($properties['namespace'].'\Providers\AddonServiceProvider'),
],
]);
}

protected function generateLaravel5(FileGenerator $generator, array $properties)
{
$generator->directory('app', function ($generator) use ($properties) {
Expand Down
7 changes: 4 additions & 3 deletions sources/Addons/Console/AddonMakeCommand.php
Expand Up @@ -50,9 +50,10 @@ class AddonMakeCommand extends Command
4 => 'api',
5 => 'ui',
6 => 'debug',
7 => 'laravel5',
8 => 'sample:ui',
9 => 'sample:auth',
7 => 'generator',
8 => 'laravel5',
9 => 'sample:ui',
10 => 'sample:auth',
];

/**
Expand Down
77 changes: 77 additions & 0 deletions sources/Addons/stubs/generator/AddonServiceProvider.php
@@ -0,0 +1,77 @@
<?php

namespace {$namespace}\Providers;

class AddonServiceProvider extends \Illuminate\Support\ServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
if (!$this->app->isLocal()) {
return;
}

$files = $this->app['files'];
$stub_directory = addon_config(addon_name(), 'commands.stub.directory');

$routine = function ($instance, $app) use ($stub_directory) {
$instance->setStubDirectory($stub_directory);
return $instance;
};

if (addon_config(addon_name(), 'commands.stub.overrides')) {
if ($files->exists('console.stub')) {
$this->app->extend('command.console.make', $routine);
}
if ($files->exists('controller.stub')) {
$this->app->extend('command.controller.make', $routine);
}
if ($files->exists('event.stub')) {
$this->app->extend('command.event.make', $routine);
}
if ($files->exists('job.stub')) {
$this->app->extend('command.job.make', $routine);
}
if ($files->exists('listener.stub')) {
$this->app->extend('command.listener.make', $routine);
}
if ($files->exists('middleware.stub')) {
$this->app->extend('command.middleware.make', $routine);
}
if ($files->exists('migration.stub')) {
$this->app->extend('command.migration.make', $routine);
}
if ($files->exists('model.stub')) {
$this->app->extend('command.model.make', $routine);
}
if ($files->exists('policy.stub')) {
$this->app->extend('command.policy.make', $routine);
}
if ($files->exists('provider.stub')) {
$this->app->extend('command.provider.make', $routine);
}
if ($files->exists('request.stub')) {
$this->app->extend('command.request.make', $routine);
}
if ($files->exists('seeder.stub')) {
$this->app->extend('command.seeder.make', $routine);
}
if ($files->exists('test.stub')) {
$this->app->extend('command.test.make', $routine);
}
}
}

/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
}
}
9 changes: 9 additions & 0 deletions sources/Addons/stubs/generator/commands.php
@@ -0,0 +1,9 @@
<?php

return [
'stub' => [
'directory' => __DIR__.'/../stubs',

'overrides' => true,
],
];
45 changes: 45 additions & 0 deletions sources/Addons/stubs/generator/stubs/_console.stub
@@ -0,0 +1,45 @@
<?php

namespace {$namespace};

use Illuminate\Console\Command;

/**
* Custom class
*/
class {$class} extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = '{$command}';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
}
}
89 changes: 89 additions & 0 deletions sources/Addons/stubs/generator/stubs/_controller-resource.stub
@@ -0,0 +1,89 @@
<?php

namespace {$namespace};

use {$root_namespace}\Http\Controllers\Controller as BaseController;
use Illuminate\Http\Request;
use {$root_namespace}\Http\Requests;

/**
* Custom class
*/
class {$class} extends BaseController
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}

/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Expand Up @@ -6,6 +6,9 @@ use {$root_namespace}\Http\Controllers\Controller as BaseController;
use Illuminate\Http\Request;
use {$root_namespace}\Http\Requests;

/**
* Custom class
*/
class {$class} extends BaseController
{
//
Expand Down
35 changes: 35 additions & 0 deletions sources/Addons/stubs/generator/stubs/_event.stub
@@ -0,0 +1,35 @@
<?php

namespace {$namespace};

use {$root_namespace}\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

/**
* Custom class
*/
class {$class} extends Event
{
use SerializesModels;

/**
* Create a new event instance.
*
* @return void
*/
public function __construct()
{
//
}

/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return [];
}
}
37 changes: 37 additions & 0 deletions sources/Addons/stubs/generator/stubs/_job-queued.stub
@@ -0,0 +1,37 @@
<?php

namespace {$namespace};

use {$root_namespace}\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;

/**
* Custom class
*/
class {$class} extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue, SerializesModels;

/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
}
}

0 comments on commit 1ae6223

Please sign in to comment.