graham-campbell/digitalocean

DigitalOcean 是 Laravel 的 DigitalOcean 桥接器


README

Laravel DigitalOcean 由 Graham Campbell 创建并维护,是一个 DigitalOcean PHP API 客户端 桥接器,用于 Laravel。它使用了我的 Laravel Manager 包。您可以自由查看 变更日志版本发布安全策略许可协议行为准则贡献指南

Banner

Build Status StyleCI Status Software License Packagist Downloads Latest Version

安装

本版本需要 PHP 7.4-8.3,并支持 Laravel 8-11。

要获取最新版本,只需使用 Composer 依赖项目。

$ composer require "graham-campbell/digitalocean:^10.4"

安装后,如果您未使用自动包发现,则需要在您的 config/app.php 中注册 GrahamCampbell\DigitalOcean\DigitalOceanServiceProvider 服务提供者。

您还可以选择性地别命名我们的外观

        'DigitalOcean' => GrahamCampbell\DigitalOcean\Facades\DigitalOcean::class,

配置

Laravel DigitalOcean 需要连接配置。

要开始,您需要发布所有供应商资产

$ php artisan vendor:publish

这将在您的应用中创建一个 config/digitalocean.php 文件,您可以修改它以设置您的配置。同时,请确保检查本包中原始配置文件在版本间的更改。

有两种配置选项

默认连接名称

此选项('default')是您指定要作为所有工作的默认连接的连接之一的位置。当然,您可以使用管理器类同时使用许多连接。此设置的默认值是 'main'

DigitalOcean 连接

此选项('connections')是您为应用程序设置每个连接的地方。示例配置已包括在内,但您可以添加您想要的任何数量的连接。请注意,支持的两种认证方法是:"none""token"

用法

DigitalOceanManager

这是最有趣的类。它绑定到 ioc 容器中的 'digitalocean',可以通过 Facades\DigitalOcean 外观访问。此类通过扩展 AbstractManager 实现 ManagerInterface。接口和抽象类都是我 Laravel Manager 包的一部分,因此您可能想查看那个存储库中的文档,了解如何使用管理器类在那。请注意,返回的连接类始终是 DigitalOceanV2\Client 的实例。

门面\DigitalOcean

此门面将动态地将静态方法调用传递到ioc容器中的'digitalocean'对象,默认情况下是DigitalOceanManager类。

DigitalOceanServiceProvider

此类不包含任何有意义的公共方法。应将此类添加到config/app.php中的providers数组中。此类将设置ioc绑定。

真实示例

在这里,您可以看到这个包有多么简单易用。默认适配器是main。在配置文件中输入您的认证信息后,它将正常工作。

use GrahamCampbell\DigitalOcean\Facades\DigitalOcean;
// you can alias this in config/app.php if you like

DigitalOcean::droplet()->powerOn(12345);
// we're done here - how easy was that, it just works!

DigitalOcean::size()->getAll();
// this example is simple, and there are far more methods available

DigitalOcean管理器将表现得像DigitalOceanV2\Client类。如果您想调用特定的连接,可以使用connection方法。

use GrahamCampbell\DigitalOcean\Facades\DigitalOcean;

// select the your_connection_name connection, then get going
DigitalOcean::connection('your_connection_name')->droplet()->getById(12345);

考虑到这一点,请注意:

use GrahamCampbell\DigitalOcean\Facades\DigitalOcean;

// writing this:
DigitalOcean::connection('main')->region()->getAll();

// is identical to writing this:
DigitalOcean::region()->getAll();

// and is also identical to writing this:
DigitalOcean::connection()->region()->getAll();

// this is because the main connection is configured to be the default
DigitalOcean::getDefaultConnection(); // this will return main

// we can change the default connection
DigitalOcean::setDefaultConnection('alternative'); // the default is now alternative

如果您像我一样喜欢使用门面而不是依赖注入,那么您可以这样轻松地注入管理器。

use GrahamCampbell\DigitalOcean\DigitalOceanManager;

class Foo
{
    private DigitalOceanManager $digitalocean;

    public function __construct(DigitalOceanManager $digitalocean)
    {
        $this->digitalocean = $digitalocean;
    }

    public function bar()
    {
        $this->digitalocean->region()->getAll();
    }
}

app(Foo::class)->bar();

有关如何使用我们在此幕后调用的DigitalOceanV2\Client类的更多信息,请参阅此处的文档,以及管理器类此处

更多信息

此包中还有其他未在此处记录的类。这是因为它们不是用于公共用途,而是由此包内部使用。

安全性

如果您在此包中发现安全漏洞,请发送电子邮件至security@tidelift.com。所有安全漏洞都将得到及时处理。您可以在此处查看我们的完整安全策略这里

许可证

Laravel DigitalOcean采用MIT许可证(MIT)

企业版

作为Tidelift订阅的一部分提供

graham-campbell/digitalocean的维护者以及成千上万的其他包维护者正在与Tidelift合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码质量,同时支付您确切使用的依赖项的维护者。了解更多信息请点击这里