tzurbaev/laravel-forge-api

Laravel Forge API SDK

2.4.0 2021-04-16 03:09 UTC

README

GitHub Workflow Status StyleCI ScrutinizerCI Latest Version on Packagist Software License

需求

此包需要PHP 7.2或更高版本。

安装

您可以通过composer安装此包

$ composer require tzurbaev/laravel-forge-api

从1.x升级到2.0

2.0.0版本对库API进行了重大更改,以修复Forge API自身引入的破坏性更改。

请阅读升级信息以了解更改内容。

示例

以下是此包可以为您做什么的一些示例。

创建新服务器

<?php

use Laravel\Forge\ApiProvider;
use Laravel\Forge\Forge;

$forge = new Forge(new ApiProvider('api-token'));
$credential = $forge->credentialFor('ocean2');

// This will create new droplet on DigitalOcean with 1GB memory,
// PHP 7.1 and MariaDb at Frankfurt region.
$server = $forge->create()
    ->droplet()
    ->usingCredential($credential)
    ->withSizeId(1)
    ->at('fra1')
    ->runningPhp('7.1')
    ->withMariaDb()
    ->save();

创建新站点

<?php

use Laravel\Forge\Forge;
use Laravel\Forge\ApiProvider;
use Laravel\Forge\Sites\SitesManager;

$forge = new Forge(new ApiProvider('api-token'));
$server = $forge['web-01'];

// This will create new example.org site
// with General PHP/Laravel project type.
$site = (new SitesManager())->create('example.org')->asLaravel()->on($server);

在站点上安装Git/WordPress应用程序

<?php

use Laravel\Forge\Forge;
use Laravel\Forge\ApiProvider;
use Laravel\Forge\Sites\SitesManager;
use Laravel\Forge\Applications\GitApplication;

$forge = new Forge(new ApiProvider('api-token'));
$server = $forge['web-01'];

$siteId = 1234;
$site = (new SitesManager())->get($siteId)->from($server);

$app = (new GitApplication())->fromGithub('username/repository');
$site->install($app);

重启MySQL

<?php

use Laravel\Forge\Forge;
use Laravel\Forge\ApiProvider;
use Laravel\Forge\Services\MysqlService;
use Laravel\Forge\Services\ServicesManager;

$forge = new Forge(new ApiProvider('api-token'));

$databaseServer = $forge['database-01'];
$services = new ServicesManager();

$services->restart(new MysqlService())->on($databaseServer);

或者在多个服务器上重启MySQL(或任何其他服务)

<?php

use Laravel\Forge\Forge;
use Laravel\Forge\ApiProvider;
use Laravel\Forge\Services\MysqlService;
use Laravel\Forge\Services\ServicesManager;

$forge = new Forge(new ApiProvider('api-token'));

$servers = [
    $forge['database-01'],
    $forge['database-02'],
    $forge['database-03'],
];

$services = new ServicesManager();
$services->restart(new MysqlService())->on($servers);

文档

完整的文档可在此处找到。

变更日志

请参阅CHANGELOG了解最近更改的更多信息。

测试

$ vendor/bin/phpunit

贡献

请参阅CONTRIBUTING以获取详细信息。

安全性

如果您发现任何安全相关问题,请通过电子邮件zurbaev@gmail.com联系,而不是使用问题跟踪器。

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。