brandon14/fossabot-commander-laravel

将brandon14/fossabot-commander库连接到Laravel应用程序的库。

v2.0.1 2024-08-17 19:22 UTC

This package is auto-updated.

Last update: 2024-09-17 19:39:12 UTC


README

Packagist PHP Version

GitHub Actions Workflow Status Code Climate maintainability Codecov GitHub

GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests

GitHub release (with filter) GitHub commit activity (branch) GitHub last commit (by committer)

brandon14/fossabot-commander-laravel

brandon14/fossabot-commander-laravel的源代码

目录

  1. 需求
  2. 目的
  3. 安装
  4. 使用方法
  5. 标准
  6. 覆盖率
  7. 文档
  8. 贡献
  9. 版本控制
  10. 安全漏洞

需求

目的

这是一个针对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

X (formerly Twitter) Follow