Files
2026-05-11 11:29:41 +09:00

3.2 KiB

모듈 스캐폴딩 (create-module)

새로운 모듈의 기본 구조를 생성합니다.

TL;DR (5초 요약)

1. 명령: /create-module vendor-module
2. 위치: modules/_bundled/vendor-module/
3. 참조 샘플: modules/_bundled/gnuboard7-hello_module/ (학습용 최소 모듈, Memo CRUD)
4. hidden 플래그: manifest.hidden=true 시 관리자 UI 제외 (CLI 정상)
5. 생성 후: extension:update-autoload → module:install → module:activate

사용법

/create-module vendor-module

예시: /create-module sirsoft-ecommerce

입력 형식

  • vendor-module — 벤더명과 모듈명을 하이픈(-)으로 연결
  • 네임스페이스 자동 변환: sirsoft-ecommerce → Modules\Sirsoft\Ecommerce\
  • 언더스코어(_) → PascalCase: sirsoft-order_management → Modules\Sirsoft\OrderManagement\

생성 위치

modules/_bundled/vendor-module/

생성되는 파일

파일 설명
module.json 메타데이터 SSoT (identifier, version, dependencies 등)
module.php AbstractModule 상속 엔트리 클래스
composer.json PSR-4 오토로딩 (src/, database/seeders/, database/factories/)
CHANGELOG.md Keep a Changelog 형식
LICENSE MIT 라이선스
config/settings/defaults.json 기본 설정 (_meta, defaults, frontend_schema)
src/lang/{ko,en}/*.php 백엔드 다국어 (messages, validation, exceptions)
resources/lang/{ko,en}.json 프론트엔드 다국어
resources/routes.json 프론트엔드 라우트 정의
src/routes/web.php 웹/API 라우트
resources/layouts/admin/pages/index.json 초기 관리자 레이아웃

생성되는 디렉토리

  • src/Contracts/Repositories/ — Repository 인터페이스
  • src/Enums/ — Enum 정의
  • src/Exceptions/ — Custom Exception
  • src/Http/Controllers/Admin/ — 관리자 컨트롤러
  • src/Http/Requests/Admin/ — FormRequest
  • src/Http/Resources/ — API Resource
  • src/Listeners/ — 훅 리스너
  • src/Models/ — Eloquent 모델
  • src/Providers/ — 서비스 프로바이더
  • src/Repositories/ — Repository 구현체
  • src/Services/ — 서비스 클래스
  • database/migrations/ — 마이그레이션
  • database/seeders/ — 시더
  • database/factories/ — 팩토리
  • tests/Feature/, tests/Unit/ — 테스트

module.php 구현 메서드

메서드 설명
getRoles() 모듈 역할 정의
getPermissions() 계층형 권한 (categories → permissions → action/name/type/roles)
getAdminMenus() 관리자 메뉴 (slug, url, icon, order, permission)
getSeeders() 설치 시 실행할 시더 목록
getHookListeners() 훅 리스너 클래스 목록
getStorageDisk() 스토리지 디스크 설정

생성 후 다음 단계

php artisan extension:update-autoload
php artisan module:install vendor-module
php artisan module:activate vendor-module

참조 문서