clue/
framework-x
Framework X – 简单快速的微框架,适用于构建在任何地方运行的反应式Web应用。
Requires
- php: >=7.1
- nikic/fast-route: ^1.3
- react/async: ^4 || ^3
- react/http: ^1.9
- 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 install
要运行测试套件,请转到项目根目录并运行
$ vendor/bin/phpunit
测试套件已配置,确保在所有支持的环境中始终实现100%的代码覆盖率。如果您已安装Xdebug扩展,您还可以像这样本地生成代码覆盖率报告:
$ XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-text
此外,您还可以运行我们复杂的集成测试,以验证框架示例在您的Web服务器后是否按预期工作。使用您选择的Web服务器(请参阅部署文档)并使用以下方式执行测试,测试URL指向您的安装:
$ php tests/integration/public/index.php $ tests/integration.bash http://localhost:8080/
许可协议
本项目采用宽松的MIT许可证发布。
您知道吗?我提供定制开发服务,并为发布和贡献发放发票。如有需要,请联系我(@clue)获取详细信息。