3.2 KiB
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 Exceptionsrc/Http/Controllers/Admin/— 관리자 컨트롤러src/Http/Requests/Admin/— FormRequestsrc/Http/Resources/— API Resourcesrc/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