增改应用
最后更新于:2022-04-02 07:04:54
MixPHP 从 V2.1 起调整为单应用 (可配置多个模块),`/app/src` 目录内为同一个应用,由注册的命令引导启动不同目录的程序代码,同一个应用中依然包含以下程序模块:
- Console:命令行开发、守护进程开发
- Api:API 应用开发
- Web:Web 应用开发
- WebSocket:WebSocket 应用开发
- Tcp:TCP 应用开发
- Udp:UDP 应用开发
- JsonRpc: JSON-RPC 应用开发
目录结构:
```
|-- LICENSE
|-- README.md
|-- app
| |-- Api
| |-- Common
| |-- Console
| |-- JsonRpc
| |-- SyncInvoke
| |-- Tcp
| |-- Udp
| |-- Web
| |-- WebSocket
| `-- functions.php
|-- bin
| `-- mix.php
|-- composer.json
|-- config
|-- manifest
| |-- beans
| |-- commands
| `-- manifest.php
|-- public
|-- runtime
|-- vendor
`-- views
```
## 增加或修改功能模块
`app` 目录内的应用都可随意修改或增加,以 `API` 开发为例:
>[success] 通常一个 API 应用对应一个子域名,如:api.test.com 对应 app/src/Api 。
### 1. 建立应用目录
在 `app` 目录内建一个子目录,比如:`Foo`,然后将 `Api` 文件夹的全部文件复制过来。
### 2. 修改类文件的命名空间
找到所有类文件,全部由 `App\Api` 修改为新的命名空间 `App\Foo`。
### 3. 命令注册到 (manifest.php)
把新模块的服务启动命令注册到 `commands` 配置项中:
~~~
'foo:start' => [
\App\Foo\Commands\StartCommand::class,
'description' => "Start service",
'options' => [
[['d', 'daemon'], 'description' => "Run in the background"],
[['p', 'port'], 'description' => "Listen to the specified port"],
],
],
~~~
### 4. 启动
指定配置启动服务:
```
$> php bin/mix.php foo:start
```
';