Estrutura do Diretório
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
Nós vemos que um plugin de aplicativo tem a mesma estrutura de diretório e arquivos de configuração que o webman; na verdade, a experiência de desenvolvimento é basicamente a mesma que a de desenvolver um aplicativo webman comum.
Os diretórios e nomes dos plugins seguem a norma PSR4. Como os plugins são colocados no diretório plugin, todos os namespaces começam com plugin, por exemplo plugin\foo\app\controller\UserController
.
Sobre o Diretório api
Cada plugin contém um diretório api. Se seu aplicativo fornece algumas interfaces internas para outras aplicações chamarem, você deve colocar essas interfaces no diretório api.
Note que as interfaces aqui referidas são interfaces de chamadas de função, não interfaces de chamadas de rede.
Por exemplo, o plugin/email/api/Email.php
fornece uma interface Email::send()
para enviar e-mails, que pode ser chamada por outras aplicações.
Além disso, o plugin/email/api/Install.php
é gerado automaticamente, para permitir que o mercado de plugins do webman-admin chame e execute operações de instalação ou desinstalação.