Browse Source

Fixed controller generator to create correct controller names

tags/0.1.0
Nafies Luthfi 8 years ago
parent
commit
1af21bdd0f
  1. 27
      src/CrudMake.php
  2. 6
      src/stubs/controller.model.stub
  3. 20
      tests/CrudMakeCommandTest.php

27
src/CrudMake.php

@ -76,6 +76,7 @@ class CrudMake extends Command
$this->info($this->pluralModelName.'Controller generated.');
}
public function generateMigration()
{
$prefix = date('Y_m_d_His');
@ -109,7 +110,8 @@ class CrudMake extends Command
public function getControllerContent()
{
return $this->files->get(__DIR__.'/stubs/controller.model.stub');
$stub = $this->files->get(__DIR__.'/stubs/controller.model.stub');
return $this->replaceDummyStrings($stub)->replaceClass($stub);
}
private function getMigrationContent()
@ -145,4 +147,27 @@ class CrudMake extends Command
return $path;
}
protected function replaceDummyStrings(&$stub)
{
$stub = str_replace(
['DummyNamespace', 'DummyFullModelClass', 'DummyModelVariable', 'DummyModelClass'],
[$this->getNamespace($this->modelName), 'App\\'.$this->modelName, strtolower($this->modelName), $this->modelName],
$stub
);
return $this;
}
protected function replaceClass($stub)
{
$class = str_plural($this->modelName);
return str_replace('DummyClass', $class, $stub);
}
protected function getNamespace($name)
{
return trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\');
}
}

6
src/stubs/controller.model.stub

@ -1,12 +1,12 @@
<?php
namespace DummyNamespace;
namespace App\Http\Controllers;
use DummyFullModelClass;
use Illuminate\Http\Request;
use DummyRootNamespaceHttp\Controllers\Controller;
use App\Http\Controllers\Controller;
class DummyClass extends Controller
class DummyClassController extends Controller
{
/**
* Display a listing of the resource.

20
tests/CrudMakeCommandTest.php

@ -67,13 +67,13 @@ class Item extends Model
$this->assertFileExists(app_path('Item.php'));
$ctrlClassContent = "<?php
namespace DummyNamespace;
namespace App\Http\Controllers;
use DummyFullModelClass;
use App\Item;
use Illuminate\Http\Request;
use DummyRootNamespaceHttp\Controllers\Controller;
use App\Http\Controllers\Controller;
class DummyClass extends Controller
class ItemsController extends Controller
{
/**
* Display a listing of the resource.
@ -99,10 +99,10 @@ class DummyClass extends Controller
/**
* Display the specified resource.
*
* @param \DummyFullModelClass \$DummyModelVariable
* @param \App\Item \$item
* @return \Illuminate\Http\Response
*/
public function show(DummyModelClass \$DummyModelVariable)
public function show(Item \$item)
{
//
}
@ -111,10 +111,10 @@ class DummyClass extends Controller
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request \$request
* @param \DummyFullModelClass \$DummyModelVariable
* @param \App\Item \$item
* @return \Illuminate\Http\Response
*/
public function update(Request \$request, DummyModelClass \$DummyModelVariable)
public function update(Request \$request, Item \$item)
{
//
}
@ -122,10 +122,10 @@ class DummyClass extends Controller
/**
* Remove the specified resource from storage.
*
* @param \DummyFullModelClass \$DummyModelVariable
* @param \App\Item \$item
* @return \Illuminate\Http\Response
*/
public function destroy(DummyModelClass \$DummyModelVariable)
public function destroy(Item \$item)
{
//
}

Loading…
Cancel
Save