imiphp / project-http
imi 框架的 Http Server 项目。https://imiphp.com
Installs: 3 142
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 3
Forks: 1
Open Issues: 0
Type:project
Requires
- php: >=7.4
- imiphp/imi: ~2.1.0
- imiphp/imi-fpm: ~2.1.0
- imiphp/imi-workerman: ~2.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ~3.4.0
- phpstan/phpstan: ~1.8.0
- phpunit/phpunit: ~9.5.0
- swoole/ide-helper: ^4.8
README
这是一个 imi http 项目开发骨架项目,你可以基于这个项目来开发你的项目。
imi 框架:https://www.imiphp.com
imi 文档:https://doc.imiphp.com
安装
创建项目: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
,可根据自己实际需要进行配置,文档:https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/doc/config.rst
格式化项目: ./vendor/bin/php-cs-fixer fix
格式化指定文件: ./vendor/bin/php-cs-fixer fix test.php
代码静态分析
内置 phpstan
,可规范代码,排查出一些隐藏问题。
配置文件 phpstan.neon
,可根据自己实际需要进行配置,文档:https://phpstan.org/config-reference
分析项目: ./vendor/bin/phpstan
分析指定文件: ./vendor/bin/phpstan test.php
测试用例
内置 phpunit
,可以实现自动化测试。
文档:https://phpunit.readthedocs.io/en/9.5/
测试用例 demo:tests/Module/Test/TestServiceTest.php
运行测试用例:composer test