디렉토리 구조
plugin/
└── foo
├── app
│ ├── controller
│ │ └── IndexController.php
│ ├── exception
│ │ └── Handler.php
│ ├── functions.php
│ ├── middleware
│ ├── model
│ └── view
│ └── index
│ └── index.html
├── config
│ ├── app.php
│ ├── autoload.php
│ ├── container.php
│ ├── database.php
│ ├── exception.php
│ ├── log.php
│ ├── middleware.php
│ ├── process.php
│ ├── redis.php
│ ├── route.php
│ ├── static.php
│ ├── thinkorm.php
│ ├── translation.php
│ └── view.php
├── public
└── api
우리는 애플리케이션 플러그인이 webman과 동일한 디렉토리 구조와 구성 파일을 가지고 있음을 확인했습니다. 사실 개발 경험은 webman 일반 애플리케이션 개발과 기본적으로 차이가 없습니다.
플러그인 디렉토리 및 명칭은 PSR4 규칙을 따르며, 플러그인은 모두 plugin 디렉토리에 위치하므로 네임스페이스는 모두 plugin으로 시작합니다. 예를 들어 plugin\foo\app\controller\UserController
와 같습니다.
api 디렉토리에 대하여
각 플러그인에는 api 디렉토리가 있으며, 애플리케이션이 다른 애플리케이션에 호출할 내부 인터페이스를 제공하는 경우, 해당 인터페이스를 api 디렉토리에 두어야 합니다.
여기서 말하는 인터페이스는 함수 호출 인터페이스로, 네트워크 호출 인터페이스가 아닙니다.
예를 들어 메일 플러그인
은 plugin/email/api/Email.php
에서 다른 애플리케이션이 이메일을 보내기 위해 사용할 수 있는 Email::send()
인터페이스를 제공합니다.
또한 plugin/email/api/Install.php
는 자동 생성되며, webman-admin 플러그인 마켓이 설치 또는 제거 작업을 수행하도록 호출하기 위해 사용됩니다.