DavidMaksimov / forge-facade
Laravel Forge SDK (themsaid/forge-sdk) 的 Laravel facade 包装器
v0.1.2
2018-09-24 14:29 UTC
Requires
- themsaid/forge-sdk: ^1.2
This package is not auto-updated.
Last update: 2024-10-02 04:27:57 UTC
README
本包提供了由 themsaid/forge-sdk
提供的 Laravel Forge SDK 的 facade 包装。
使用场景
本包适用于你只关注 Laravel Forge 账户中的单个服务器的场景。
安装
安装包
composer require davidmaksimov/forge-facade
更新你的 .env
配置文件
LARAVEL_FORGE_API_KEY= LARAVEL_FORGE_SERVER_ID=
应用配置
如果你没有使用自动发现,请在 config/app.php
文件中添加服务提供者和 facade。
'providers' => [ ... Davidmaksimov\ForgeFacade\ServiceProvider::class, ],
'aliases' => [ ... 'Forge' => \Davidmaksimov\ForgeFacade\Facade::class, ],
使用方法
现在你可以使用 facade 来调用无需服务器 ID 的方法。当调用需要参数的方法时
Forge::sites(); Forge::site($siteId); Forge::createSite($siteId, $data);
SDK
以下内容来自 themsaid/forge-sdk
的说明文件。SDK 完全相同,只是对于需要 $serverId
的任何方法,你都可以省略它,因为它是自动插入的。
管理服务器
Forge::servers(); Forge::server(); Forge::createServer(array $data); Forge::updateServer(array $data); Forge::deleteServer(); Forge::rebootServer(); // Server access Forge::revokeAccessToServer(); Forge::reconnectToServer(); Forge::reactivateToServer();
在服务器实例上,你也可以调用
$server->update(array $data); $server->delete(); $server->reboot(); $server->revokeAccess(); $server->reconnect(); $server->reactivate(); $server->rebootMysql(); $server->stopMysql(); $server->rebootPostgres(); $server->stopPostgres(); $server->rebootNginx(); $server->stopNginx(); $server->installBlackfire(array $data); $server->removeBlackfire(); $server->installPapertrail(array $data); $server->removePapertrail(); $server->enableOPCache(); $server->disableOPCache(); $server->upgradePHP();
服务器 SSH 密钥
Forge::keys(); Forge::SSHKey($keyId); Forge::createSSHKey(array $data, $wait = true); Forge::deleteSSHKey($keyId);
在 SSHKey 实例上,你也可以调用
$sshKey->delete();
服务器计划任务
Forge::jobs(); Forge::job($jobId); Forge::createJob(array $data, $wait = true); Forge::deleteJob($jobId);
在 Job 实例上,你也可以调用
$job->delete();
管理服务
// MySQL Forge::rebootMysql(); Forge::stopMysql(); // Postgres Forge::rebootPostgres(); Forge::stopPostgres(); // Nginx Forge::rebootNginx(); Forge::stopNginx(); Forge::siteNginxFile($siteId); Forge::updateSiteNginxFile($siteId, $content); // Blackfire Forge::installBlackfire(array $data); Forge::removeBlackfire(); // Papertrail Forge::installPapertrail(array $data); Forge::removePapertrail(); // OPCache Forge::enableOPCache(); Forge::disableOPCache(); // PHP Forge::upgradePHP();
服务器守护进程
Forge::daemons(); Forge::daemon($daemonId); Forge::createDaemon(array $data, $wait = true); Forge::restartDaemon($daemonId, $wait = true); Forge::deleteDaemon($daemonId);
在守护进程实例上,你也可以调用
$daemon->restart($wait = true); $daemon->delete();
服务器防火墙规则
Forge::firewallRules(); Forge::firewallRule($ruleId); Forge::createFirewallRule(array $data, $wait = true); Forge::deleteFirewallRule($ruleId);
在 FirewallRule 实例上,你也可以调用
$rule->delete();
管理站点
Forge::sites(); Forge::site($siteId); Forge::createSite(array $data, $wait = true); Forge::updateSite($siteId, array $data); Forge::refreshSiteToken($siteId); Forge::deleteSite($siteId); // Environment File Forge::siteEnvironmentFile($siteId); Forge::updateSiteEnvironmentFile($siteId, $content); // Site Repositories and Deployments Forge::installGitRepositoryOnSite($siteId, array $data); Forge::updateSiteGitRepository($siteId, array $data); Forge::destroySiteGitRepository($siteId); Forge::siteDeploymentScript($siteId); Forge::updateSiteDeploymentScript($siteId, $content); Forge::enableQuickDeploy($siteId); Forge::disableQuickDeploy($siteId); Forge::deploySite($siteId); Forge::resetDeploymentState($siteId); Forge::siteDeploymentLog($siteId); // Notifications Forge::enableHipchatNotifications($siteId, array $data); Forge::disableHipchatNotifications($siteId); // Installing Wordpress Forge::installWordPress($siteId, array $data); Forge::removeWordPress($siteId); // Updating Node balancing Configuration Forge::updateNodeBalancingConfiguration($siteId, array $data);
在 Site 实例上,你也可以调用
$site->refreshToken(); $site->delete(); $site->installGitRepository(array $data); $site->updateGitRepository(array $data); $site->destroyGitRepository(); $site->getDeploymentScript(); $site->updateDeploymentScript($content); $site->enableQuickDeploy(); $site->disableQuickDeploy(); $site->deploySite(); $site->enableHipchatNotifications(array $data); $site->disableHipchatNotifications(); $site->installWordPress($data); $site->removeWordPress();
站点工作进程
Forge::workers($siteId); Forge::worker($siteId, $workerId); Forge::createWorker($siteId, array $data, $wait = true); Forge::deleteWorker($siteId, $workerId); Forge::restartWorker($siteId, $workerId, $wait = true);
在工作进程实例上,你也可以调用
$worker->delete(); $worker->restart($wait = true);
站点 SSL 证书
Forge::certificates($siteId); Forge::certificate($siteId, $certificateId); Forge::createCertificate($siteId, array $data, $wait = true); Forge::deleteCertificate($siteId, $certificateId); Forge::getCertificateSigningRequest($siteId, $certificateId); Forge::installCertificate($siteId, $certificateId, $wait = true); Forge::activateCertificate($siteId, $certificateId, $wait = true); Forge::obtainLetsEncryptCertificate($siteId, $data, $wait = true);
在证书实例上,你也可以调用
$certificate->delete(); $certificate->getSigningRequest(); $certificate->install($wait = true); $certificate->activate($wait = true);
管理 MySQL
Forge::mysqlDatabases(); Forge::mysqlDatabase($databaseId); Forge::createMysqlDatabase(array $data, $wait = true); Forge::updateMysqlDatabase($databaseId, array $data); Forge::deleteMysqlDatabase($databaseId); // Users Forge::mysqlUsers(); Forge::mysqlUser($userId); Forge::createMysqlUser(array $data, $wait = true); Forge::updateMysqlUser($userId, array $data); Forge::deleteMysqlUser($userId);
在 MysqlDatabase 实例上,你也可以调用
$database->update(array $data); $database->delete();
在 MysqlUser 实例上,你也可以调用
$databaseUser->update(array $data); $databaseUser->delete();
管理菜谱
Forge::recipes(); Forge::recipe($recipeId); Forge::createRecipe(array $data); Forge::updateRecipe($recipeId, array $data); Forge::deleteRecipe($recipeId); Forge::runRecipe($recipeId, array $data);
在菜谱实例上,你也可以调用
$recipe->update(array $data); $recipe->delete(); $recipe->run(array $data);