https://github.com/imiphp/imi-project-http
这是一个 imi http 项目开发骨架项目,你可以基于这个项目来开发你的项目。
https://github.com/imiphp/imi-project-http
Last synced: 10 months ago
JSON representation
这是一个 imi http 项目开发骨架项目,你可以基于这个项目来开发你的项目。
- Host: GitHub
- URL: https://github.com/imiphp/imi-project-http
- Owner: imiphp
- Created: 2019-08-13T09:09:06.000Z (almost 7 years ago)
- Default Branch: 2.1
- Last Pushed: 2023-07-17T06:19:13.000Z (almost 3 years ago)
- Last Synced: 2025-04-14T20:41:38.725Z (about 1 year ago)
- Language: PHP
- Homepage: https://www.imiphp.com/
- Size: 35.2 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 说明
这是一个 imi http 项目开发骨架项目,你可以基于这个项目来开发你的项目。
imi 框架:
imi 文档:
## 安装
创建项目:`composer create-project imiphp/project-http:~2.1.0`
如果你希望在 php-fpm、Workerman 运行 imi:`已内置`
如果你希望在 Swoole 运行 imi:`composer require imiphp/imi-swoole:~2.1.0`
如果你希望在 RoadRunner 运行 imi:`composer require imiphp/imi-roadrunner:~2.1.0`
> RoadRunner 二进制文件请自行下载!
## 配置
### 项目命名空间
默认是 `ImiApp`,可以在 `composer.json` 中修改:
* `autoload.psr-4.ImiApp`
* `imi.namespace`
然后替换代码中的命名空间即可。
### 运行配置
项目配置目录:`config`
HTTP 服务器配置目录:`ApiServer/config`
## 启动服务
**Swoole:**`vendor/bin/imi-swoole swoole/start` (强烈推荐)
**Workerman:**`vendor/bin/imi-workerman workerman/start` (推荐)
**RoadRunner:**`vendor/bin/imi-cli rr/start` (尝鲜)
> 切换环境运行前建议删除运行时文件目录:`rm -rf .runtime/*runtime`
**PHP-FPM:**`vendor/bin/imi-cli fpm/start`(不推荐)
建议在 FPM 模式下生成缓存:`vendor/bin/imi-cli imi/buildRuntime --app-namespace "ImiApp" --runtimeMode=Fpm`
## 目录
`.runtime` 是运行时文件读写目录,需要有可写权限
`public` 是 php-fpm 站点根目录,不用可删除
`rr` 是 RoadRunner 模式目录,不用可删除
`Module` 是模块目录,一种推荐的目录组织方式。每个模块内部有自己的控制器、服务层、模型等。当然,你也可以根据你的喜好自己组织,imi 框架没有强制要求。
内置的示例控制器目录在 `Module/Test/ApiController`。
## 生产环境
**关闭热更新:**`config/beans.php` 中 `hotUpdate.status` 设为 `false`
生产环境建议只保留一个容器,可以提升性能,imi 官方推荐使用 **Swoole**!
**移除 `imi-fpm`:**`composer remove imiphp/imi-fpm && rm -rf public`
**移除 `imi-workerman`:**`composer remove imiphp/imi-workerman`
**移除 `imi-roadrunner`:**`composer remove imiphp/imi-roadrunner && rm -rf rr && rm -f .rr.yaml`
**移除 `imi-swoole`:**`composer remove imiphp/imi-swoole`(不推荐)
## 代码质量
### 格式化代码
内置 `php-cs-fixer`,统一代码风格。
配置文件 `.php-cs-fixer.php`,可根据自己实际需要进行配置,文档:
**格式化项目:** `./vendor/bin/php-cs-fixer fix`
**格式化指定文件:** `./vendor/bin/php-cs-fixer fix test.php`
### 代码静态分析
内置 `phpstan`,可规范代码,排查出一些隐藏问题。
配置文件 `phpstan.neon`,可根据自己实际需要进行配置,文档:
**分析项目:** `./vendor/bin/phpstan`
**分析指定文件:** `./vendor/bin/phpstan test.php`
### 测试用例
内置 `phpunit`,可以实现自动化测试。
**文档:**
**测试用例 demo:**`tests/Module/Test/TestServiceTest.php`
**运行测试用例:**`composer test`