artisan make에 없지만, 자주 사용하는 패턴 및 클래스를 command 명령어로 쉽게 생성하게 만들어주는 라이브러리
다음의 명령어를 사용해 composer를 통해 패키지를 설치합니다:
composer require mingyukim/more-command
또는 composer.json의 require-dev 섹션에 다음을 추가하고 composer update
를 실행합니다:
"require": {
"mingyukim/more-command": "*"
}
php artisan vendor:publish --provider="MingyuKim\MoreCommand\MoreCommandProvider" --tag="config"
<?php
return [
'repository-namespace' => 'App', // 저장소 클래스에 대한 원하는 네임스페이스
'trait-namespace' => 'App', // Traits에 대한 원하는 네임스페이스
'service-namespace' => 'App', // 서비스에 대한 원하는 네임스페이스
'view-root-path' => 'resources' // Blade 템플릿 생성 장소. view-root-path/views/ 하위에 생성됨.
];
App/Models 폴더를 참조하여 repository Class 를 생성합니다.
php artisan make:repositories {--print}
예제:
php artisan make:repositories
하나의 repository Class 를 생성합니다.
php artisan make:repository {--print} {repositoryName}
예제:
php artisan make:repository TestRepository
결과물:
<?php
namespace App\Repositories;
use App\Models\Test;
use App\Repositories\BaseTemplate\BaseRepository;
use App\Repositories\BaseTemplate\RepositoryInterface;
class TestRepository extends BaseRepository implements RepositoryInterface
{
public function __construct(Test $model = null)
{
if($model == null) {
$model = new Test();
}
parent::__construct($model);
}
public function findById($id, array $columns = ['*'], array $relations = [])
{
return parent::findById($id, $columns, $relations); // TODO: Change the autogenerated stub
}
public function all(array $columns = ['*'], array $relations = [])
{
return parent::all($columns, $relations); // TODO: Change the autogenerated stub
}
public function firstOrNew(array $attributes = [], array $values = [])
{
return parent::firstOrNew($attributes, $values); // TODO: Change the autogenerated stub
}
public function firstOrCreate(array $attributes = [], array $values = [])
{
return parent::firstOrCreate($attributes, $values); // TODO: Change the autogenerated stub
}
public function insert($arrItems)
{
return parent::insert($arrItems); // TODO: Change the autogenerated stub
}
public function create(array $attributes)
{
return parent::create($attributes); // TODO: Change the autogenerated stub
}
public function update($id, array $attributes)
{
return parent::update($id, $attributes); // TODO: Change the autogenerated stub
}
public function updateOrCreate(array $attributes, array $values = [])
{
return parent::updateOrCreate($attributes, $values); // TODO: Change the autogenerated stub
}
public function delete($ids)
{
return parent::delete($ids); // TODO: Change the autogenerated stub
}
}
하나의 Trait File 을 생성합니다.
php artisan make:trait {--print} {triatName} {--s}
예제:
php artisan make:trait TestTrait
php artisan make:trait TestSingleTonTrait --s // 싱글톤 패턴
결과물:
<?php
namespace App\Traits;
trait TestTrait
{
}
<?php
namespace App\Traits;
trait TestSingleTonTrait
{
private static $instanse = null;
/**
*
* @return self
*/
static function getInstance()
{
if (self::$instanse == null) {
self::$instanse = new self;
}
return self::$instanse;
}
}
하나의 Service Class 를 생성합니다.
php artisan make:service {--print} {serviceName}
예제:
php artisan make:service TestService
결과물:
<?php
namespace App\Services;
use App\Repositories\TestRepository;
class TestService
{
protected $repository;
public function __construct(TestRepository $repository)
{
$this->repository = $repository;
}
public function getAllTest()
{
return $this->repository->all();
}
public function createTest(array $data)
{
return $this->repository->create($data);
}
public function updateTest(mixed $id, array $data)
{
return $this->repository->update($id, $data);
}
public function deleteTest(mixed $ids)
{
return $this->repository->delete($ids);
}
}
Create a View.
php artisan make:view {--print} {viewName}
예제:
php artisan make:view testview
결과물:
/resources/views/testview.blade.php
MIT 라이선스(MIT). 자세한 정보는 라이선스를 참고하세요.