数字 / tilwa
用于构建高性能、可扩展和可测试的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-05-30 10:07:03 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
然后,访问以下任一路由
它们不需要任何数据库连接,仅展示将传入请求路由到附加的动作处理器的相对基本能力,同时考虑高级约束,如模块和前缀。
如果您在浏览,一个“类似”的示例应用程序位于tests/Mocks
文件夹中。重点放在“类似”上,因为那里的ModuleOne
是为了测试框架的大部分功能而设计的,并不一定反映您对实际Suphle模块的期望。
为Starter项目做出贡献
Starter项目是面向用户的工具,旨在启动新的Suphle项目。如果您有理由对其做出贡献,则同时安装它们会更加方便,这样在开发过程中,您对核心项目的更新将反映在您的Starter安装上。
必须首先安装此项目。
composer create-project nmeri/suphle git clone https://github.com/nmeri17/suphle-starter.git
之后,启动器应从您的本地安装中提取其父项目。导航到启动器项目的 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
标签的现有问题,这将有助于我们实现初步目标。鉴于我非常珍视您的时间,建议在列表之外的新增内容首先在一个新问题中讨论,并委托实施。请参阅贡献指南以获取更多详细信息。