numeri / suphle
面向性能、可扩展和可测试的Web应用的PHP框架
Requires
- php: ^8.1
- brianium/paratest: *
- bugsnag/bugsnag: ^3.0
- fakerphp/faker: ^1.19
- firebase/php-jwt: ^6.0
- friendsofphp/proxy-manager-lts: ^1.0
- guzzlehttp/guzzle: ^7.4
- illuminate/container: ^9.0
- illuminate/database: ^9.0
- illuminate/events: ^9.0
- illuminate/testing: ^9.0
- illuminate/validation: ^9.0
- illuminate/view: ^9.0
- imagine/imagine: ^1.3
- laravel/framework: ^9.0
- nyholm/psr7: ^1.5
- phpunit/phpunit: 9.6
- predis/predis: ^2.0
- psr/http-client: ^1.0
- psr/http-message: ^1.0.1
- spiral/roadrunner: ^2.10
- spiral/roadrunner-jobs: ^2.3
- spiral/roadrunner-kv: ^2.1
- symfony/mailer: ^6.0
- symfony/process: ^6.0
- symfony/psr-http-message-bridge: ^2.1
- vimeo/psalm: *
- vlucas/phpdotenv: *
- wyrihaximus/json-throwable: ^4.1
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
- guidocella/eloquent-populator: ^3.0
- rector/rector: ^0.14.6
This package is auto-updated.
Last update: 2024-09-30 10:50:39 UTC
README
Suphle 框架
介绍
这是一个面向开发者的项目,旨在为 Suphle 自身做出贡献。其完整文档可在 netlify 上查看。
关于 Suphle 的功能和为什么它被构建的高级细节已迁移至 此处 和 此处。
测试
通常,从您的系统web文件夹中
composer create-project nmeri/suphle AwesomeProject cd AwesomeProject composer test -- "/path/to/AwesomeProject/tests"
测试与数据库交互,因此期望找到类似于运行WAMP等效项获得的活跃MySQL连接。服务器可以配置为使用其他任何东西,但为了本演示的目的,我们只使用MySQL。
每个模块都包含一个 .env
,其中包含以下条目
DATABASE_NAME = suphle
DATABASE_USER = root
DATABASE_PASS =
DATABASE_HOST = localhost
数据库名称并不重要。所有命令需要的只是凭证与您的本地MySQL服务器匹配,以便运行迁移。
当直接执行时,测试将留下种子数据。为了让数据库在执行完毕后自我销毁,我们必须提供配置架构。
composer test -- "/path/to/AwesomeProject/tests" -c=/path/to/AwesomeProject/phpunit.xml
并行测试
前面显示的命令将同步执行测试,这可能不是针对您的机器最优化。那些使用具有多个核心的系统的人可以利用并发测试,并可选择并行执行测试。
composer parallel-test -- "/path/to/AwesomeProject/tests" --processes=5
在上面的例子中,我们强制使用5个进程;然而,当留空时,运行器将根据可用的核心数量确定使用进程的最优数量。因此,这同样有效
composer parallel-test -- "/path/to/AwesomeProject/tests"
与在开发中使用此运行器一样,请注意,它会吞咽所有PHPUnit输出。因此,如果在测试调用完成之前失败,您可能需要同步运行以了解出了什么问题。
浏览器访问
应通过测试和通过扩展命令行与框架进行所有交互。那些不习惯阅读源代码/测试或运行测试,或者那些没有耐心,更愿意在浏览器上看到某些内容的人,应该启动 Roadrunner 服务器
php suphle_cli server:start Modules --insane --ignore_static_correct
然后,访问以下任一路由
它们不需要任何数据库连接,只演示了将传入请求路由到附加的动作处理器的相对基本能力,同时考虑了更高级的约束,如模块和前缀。
如果您只是浏览,一个 sort of 示例应用程序位于 tests/Mocks
文件夹中。重点放在 "sort of" 上,因为那里的 ModuleOne
用于测试框架的绝大多数功能,并不一定反映您从真实生活Suphle模块中期望的内容。
为 Starter 项目做出贡献
Starter项目 是面向用户的项目,旨在为启动新的Suphle项目提供基础。如果您需要对其做出贡献,同时安装它们会非常方便,这样在开发过程中,您对核心项目的更新将反映在您的Starter安装上。
此项目必须首先安装。
composer create-project nmeri/suphle git clone https://github.com/nmeri17/suphle-starter.git
之后,Starter项目应从您的本地安装中提取父项目。导航到Starter项目的composer.json
文件,并添加以下条目
"repositories": [ { "type": "path", "url": "../suphle" } ], "minimum-stability": "dev"
现在,使用安装命令指导Composer将本地安装视为父项目
cd suphle-starter
composer install
现在一切准备就绪!检出新的分支以实现您的惊人特性。如果您还需要与Roadrunner服务器交互,可以像这样获取其二进制文件
cd vendor/bin
rr get-binary
如何开始贡献
建议您在带有help-wanted
标签的现有问题中提供帮助,这有助于我们实现最初的目标。[链接](https://github.com/nmeri17/suphle/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)。由于我非常珍视您的时间,建议在新问题中讨论新添加的内容,并获得实施授权。请参阅贡献指南以获取更多详细信息。