reactphp-x / framework-x
Framework X – 简单快速的无服务器微框架,适用于构建任何地方运行的反应式Web应用。
Requires
- php: >=7.1
- nikic/fast-route: ^1.3
- react/async: ^4 || ^3
- react/http: ^1.10
- react/promise: ^3 || ^2.10
- react/socket: ^1.13
Requires (Dev)
- phpstan/phpstan: 1.10.47 || 1.4.10
- phpunit/phpunit: ^9.6 || ^7.5
- psr/container: ^2 || ^1
- react/promise-timer: ^1.10
README
Framework X – 简单快速的无服务器微框架,适用于构建任何地方运行的反应式Web应用。
支持我们
我们在开发、维护和更新我们出色的开源项目上投入了大量的时间。您可以通过 成为GitHub的赞助者 来帮助我们保持这种高质量的工作。赞助者将获得许多回报,有关详情请参阅我们的 赞助页面。
让我们一起将这些项目提升到下一个水平! 🚀
快速入门
首先创建一个空的项目目录。接下来,我们可以先看看一个简单的示例应用。您可以通过创建一个包含 index.php
文件的 public/
目录来从这个示例开始
<?php require __DIR__ . '/../vendor/autoload.php'; $app = new FrameworkX\App(); $app->get('/', function () { return React\Http\Message\Response::plaintext( "Hello wörld!\n" ); }); $app->get('/users/{name}', function (Psr\Http\Message\ServerRequestInterface $request) { return React\Http\Message\Response::plaintext( "Hello " . $request->getAttribute('name') . "!\n" ); }); $app->run();
接下来,我们需要安装X及其依赖项以实际运行此项目。在您的项目目录中,只需运行以下命令
$ composer require clue/framework-x:^0.16
有关版本升级的详细信息,请参阅变更日志。
这就完成了!下一步是提供这个Web应用。这个项目的一个很好的特性是它既适用于传统的Web服务器配置,也适用于独立的环境。
例如,您可以使用内置的Web服务器以这种方式运行上述示例
$ php public/index.php
现在,您可以使用您喜欢的Web浏览器或命令行工具来检查您的Web应用是否按预期响应
$ curl http://localhost:8080/
Hello wörld!
文档
感兴趣?请参阅网站以获取完整文档。
发现了错误或想贡献?网站文档是从 docs/ 文件夹中的源文档文件构建的。
贡献
您想为Framework X的源代码或文档做出贡献?您来对地方了!
要为源代码做出贡献,只需定位到 src/ 文件夹,您将找到那里的所有内容。此外,我们的 tests/ 文件夹包含了所有单元测试和验收测试,以确保我们的代码按预期工作。有关如何运行测试套件的更多信息,请参阅我们的 测试章节。
如果您想为网站上的Framework X文档做出贡献,请查看 docs/ 文件夹。您可以在那里的 README.md
中找到进一步的说明。
在我们的网站上发现了错误?只需前往我们的 网站存储库 并遵循 README
中的说明即可。
测试
要运行测试套件,首先需要克隆此仓库,然后通过Composer安装所有依赖项(请访问Composer网站)
$ composer install
要运行测试套件,请转到项目根目录并运行
$ vendor/bin/phpunit
测试套件已配置为始终确保所有支持的环境实现100%的代码覆盖率。如果您已安装Xdebug扩展,还可以本地生成代码覆盖率报告,如下所示
$ XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-text
此外,您还可以运行我们的复杂集成测试,以验证框架示例在您的Web服务器后是否按预期工作。使用您选择的Web服务器(请参阅部署文档)并使用以下方式执行测试
$ php tests/integration/public/index.php $ tests/integration.bash http://localhost:8080/
许可
本项目采用宽松的MIT许可证发布。
您知道吗?我提供定制开发服务,并可以出具发布赞助和贡献的发票。如需详情,请联系我(@clue)。