brandon14 / fossabot-commander-laravel
将brandon14/fossabot-commander库连接到Laravel应用程序的库。
Requires
- php: ^7.4 || ^8.0
- brandon14/fossabot-commander: ^1.0.2
- guzzlehttp/guzzle: ^7.4.5
- guzzlehttp/psr7: ^2.4.5
- illuminate/console: ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- comcast/php-legal-licenses: ^1.2
- friendsofphp/php-cs-fixer: ^3.35
- mockery/mockery: ^1.6
- neronmoon/scriptsdev: ^0.1.9
- nunomaduro/phpinsights: ^2.9
- orchestra/testbench: ^6.38.0 || ^7.35.0 || ^8.15.0 || ^9.2.0
- pestphp/pest: ^1.23.1 || ^2.34.9
- pestphp/pest-plugin-laravel: ^1.4 || ^2.0
- phpmd/phpmd: ^2.14
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.7
- symfony/thanks: ^1.2.10
- vimeo/psalm: ^5.15
This package is auto-updated.
Last update: 2024-09-17 19:39:12 UTC
README
brandon14/fossabot-commander-laravel
brandon14/fossabot-commander-laravel的源代码
目录
需求
目的
这是一个针对Laravel的fossabot-commander包的简单包装器,允许轻松集成到Laravel项目中。
此库为Laravel IoC容器提供所有绑定,用于设置fossabot-commander库,还包括一个辅助函数fossabot_commander()
,用于从容器中获取指挥类。它还提供了一个FossabotCommander外观。该包绑定到容器中的Brandon14\FossabotCommander\Contracts\FossabotCommander
接口,并作为别名fossabot-commander
。
安装
composer require brandon14/fossabot-commander-laravel
使用方法
首先需要从请求头中获取自定义API令牌。它将在x-fossabot-customapitoken
头中。
对于Laravel中的简单命令
// FooCommand.php <?php declare(strict_types=1); namespace App\Fossabot\Commands; use Brandon14\FossabotCommander\FossabotCommand; use Brandon14\FossabotCommander\Contracts\Context\FossabotContext; class FooCommand extends FossabotCommand { /** * {@inheritDoc} */ public function getResponse(?FossabotContext $context = null) : string { return 'Hello chat!'; } } // In some Laravel Controller <?php declare(strict_types=1); namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Fossabot\Commands\FooCommand; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Brandon14\FossabotCommander\Contracts\FossabotCommander; class Controller extends BaseController { use AuthorizesRequests; use ValidatesRequests; private FossabotCommander $commander; public function __construct(FossabotCommander $commander) { $this->commander = $commander; } public function fooCommand(Request $request): string { // Get Fossabot API token. $apiToken = $request->header('x-fossabot-customapitoken'); // Invoke command. return $this->commander->runCommand(new FooCommand(), $apiToken); } }
使用助手
<?php declare(strict_types=1); namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Fossabot\Commands\FooCommand; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use function Brandon14\FossabotCommanderLaravel\fossabot_commander; class Controller extends BaseController { use AuthorizesRequests; use ValidatesRequests; public function fooCommand(Request $request): string { // Get Fossabot API token. $apiToken = $request->header('x-fossabot-customapitoken'); return fossabot_commander()->runCommand(new FooCommand(), $apiToken); } }
使用外观
<?php declare(strict_types=1); namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Fossabot\Commands\FooCommand; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Brandon14\FossabotCommanderLaravel\Facades\FossabotCommander; class Controller extends BaseController { use AuthorizesRequests; use ValidatesRequests; public function fooCommand(Request $request): string { // Get Fossabot API token. $apiToken = $request->header('x-fossabot-customapitoken'); return FossabotCommander::runCommand(new FooCommand(), $apiToken); } }
通过Artisan命令制作命令
php artisan fossabot:make:command NameOfCommand
标准
我们努力遵守PSR-12编码风格,并通过php-cs-fixer代码检查工具强制执行我们的编码标准。我们的规则集可以在.php-cs-fixer.dist.php
文件中找到。
覆盖率
最新的代码覆盖率信息可以通过Codecov找到。我们努力在整个Flysystem适配器上保持100%的覆盖率,所以如果你正在贡献,请确保为新增的代码包含测试。
文档
此项目的文档可以在这里找到。
贡献
有什么要添加的吗?发现了一个错误或代码有问题?请随时提交拉取请求以添加新功能、修复错误或清理代码。只需确保遵循行为准则和贡献指南,如果可能,我们鼓励创建干净且描述良好的拉取请求。
如果您发现库有问题或想建议新功能,请随时使用问题跟踪器创建适当的问题。
为了运行测试,建议您注册一个Cloudinary帐户(这是一项免费服务),并使用该帐户运行完整的集成测试。为此,您需要将.env.example
复制到.env
,并使用您帐户中的详细信息填写变量。集成测试将使用随机前缀目录,并在测试前后清理一切。
版本控制
brandon14/fossabot-commander-laravel
使用类似于 主版本.次版本.修订号
的 语义化版本控制。
主版本号的变更将包括不兼容的变更,可能需要重构使用它的项目。次版本号的变更将包括向后兼容的新特性和变更,不会破坏现有的使用。修订号变更将包括向后兼容的 bug 和安全修复,应尽快更新。
安全漏洞
如果您在此软件包中发现漏洞,请通过 brandon14125@gmail.com 邮件联系 Brandon Clothier。所有安全漏洞都将得到及时处理。
此代码遵循 MIT 许可协议发布。
版权所有 © 2023-2024 Brandon Clothier