mpociot / blacksmith
非官方的 Laravel Forge API
Requires
- php: >=5.5.0
- behat/mink: ^1.7
- behat/mink-goutte-driver: ^1.2
- mnapoli/silly: ^1.5
- tightenco/collect: ~5.0
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ~5.0
README
Laravel Forge 真的是非常棒,对吧?是的,它很棒 - 但它缺少一个东西 - 一个合适的 API。
这就是为什么这个库存在的原因 - Blacksmith 是一个非官方的 Laravel Forge API,用于自动化常见任务。
API 仍在改进,我会根据需要不断添加功能。
入门指南
use Mpociot\Blacksmith\Blacksmith; $blacksmith = new Blacksmith($email, $password);
可用方法
获取所有活动服务器
返回一个 Server
对象的集合。
$activeServers = $blacksmith->getActiveServers();
获取所有服务器的所有站点
返回一个 Site
对象的集合。
$sites = $blacksmith->getSites();
通过其 ID 获取服务器
返回一个单一的 Server
对象。
$server = $blacksmith->getServer(1);
向 Forge 添加服务器
返回一个带有配置 URL 的单一 Server
对象。
以下示例将创建一个带有自定义供应商的负载均衡器
$server = $blacksmith->addServer([ 'backups' => false, 'database' => 'forge', 'hhvm' => false, 'ip_address' => '94.212.124.121', 'maria' => false, 'name' => 'harmonious-lagoon', 'nodeBalancer' => true, 'old_php' => false, 'php_version' => 'php70', 'private_ip_address' => '10.0.0.2', 'provider' => 'custom', 'size' => '2', 'timezone' => 'Europe/Berlin', ]);
通过其 ID 获取站点
返回一个单一的 Site
对象。
$site = $blacksmith->getSite(1);
获取所有圈子
返回用户的所有 Circle
对象的集合。
$circles = $blacksmith->getCircles();
通过其 ID 获取圈子
返回一个单一的 Circle
对象。
$circle = $blacksmith->getCircle(1);
添加新的圈子
返回一个单一的 Circle
对象。
$circle = $blacksmith->addCircle('Name of Circle');
获取所有食谱
返回一个 Recipe
对象的集合。
$recipes = $blacksmith->getRecipes();
通过其 ID 获取食谱
返回一个单一的 Recipe
对象。
$recipe = $blacksmith->getRecipe(1);
添加新的食谱
返回一个单一的 Recipe
对象。
$recipe = $blacksmith->addRecipe('RecipeName', 'root', 'Recipe contents');
服务器方法
获取站点
返回服务器上的 Site
对象的集合。
$sites = $server->getSites();
添加新的站点
返回新创建的 Site
对象,或者在发生错误时抛出异常。
$newSite = $server->addSite($site_name, $project_type = 'php', $directory = '/public', $wildcards = false);
添加新的 SSH 密钥
将 SSH 密钥添加到服务器
$server->addSSHKey('Name SSH key', 'Contents of SSH key');
从服务器中删除 SSH 密钥
$server->removeSSHKey(1);
更新元数据
更新当前站点的元数据,并返回一个更新的 Server
对象,或者在发生错误时抛出异常。
$server = $server->updateMetadata($server_name, $ip_address, $private_ip_address, $size);
获取计划作业
返回服务器上的 ScheduledJob
对象的集合。
$jobs = $server->getScheduledJobs();
添加新的计划作业
返回新创建的 ScheduledJob
对象,或者在发生错误时抛出异常。
$newJob = $server->addScheduledJob($command, $user = 'forge', $frequency = 'minutely');
toArray
返回包含所有可用服务器信息的数组。
$data = $server->toArray();
站点方法
获取环境
返回配置的 .env 文件
$env_content = $site->getEnvironment();
安装应用程序
将应用程序安装并部署到站点。
$site->installApp($repository, $provider = 'github', $branch = 'master', $composer = true, $migrate = false);
部署应用程序
在此站点上部署应用程序。
$site->deploy();
获取最后部署日志
返回此站点的最后部署日志。
$site->deployLog();
toArray
返回包含所有可用站点信息的数组。
$data = $site->toArray();
圈子方法
通过电子邮件邀请成员
返回一个新鲜的 Circle
对象,或者在发生错误时抛出异常。
$circle = $circle->inviteMember('email@company.com');
设置所有圈子成员
如果您想删除成员,请更新圈子并包含所有成员 ID。它将返回一个新鲜的 Circle
对象。
$circle = $circle->setMembers([1,2]);
设置所有圈子服务器
如果您想向圈子添加或删除服务器,请更新圈子并包含所有服务器 ID。它将返回一个新鲜的 Circle
对象。
$circle = $circle->setServers([1,2]);
食谱方法
更新食谱
$recipe = $recipe->update($name, $user, $script);
许可证
Blacksmith 是在 MIT 许可证条款下分发的免费软件。