patrolserver / patrol-laravel
实现 PatrolServer SDK 的包
Requires
- php: >=5.3.3
- patrolserver/patrolsdk-php: ~1.0.1
This package is not auto-updated.
Last update: 2024-09-18 10:53:03 UTC
README
一个 Laravel 4/5 包,可以将 PatrolServer PHP SDK 集成到您的项目中。
要求
PHP 5.3.3 及更高版本。
Laravel 5.x。
安装
您可以使用 Composer 安装此包。您可以在 Laravel 根目录下运行以下命令来安装:
composer require patrolserver/laravel-patrol
Laravel
此包提供了一个门面,以便轻松集成。
只需将 PatrolServer\Patrol\PatrolServiceProvider 提供者添加到 config/app.php 文件中的 providers 数组中。
'providers' => [ ... 'PatrolServer\Patrol\PatrolServiceProvider', ],
并将 Patrol 别名添加到 config/app.php 中,以便访问门面
'aliases' => [ ... 'Patrol' => 'PatrolServer\Patrol\Facades\Patrol', ],
配置文件
您必须在配置文件中输入 API 密钥和密钥。要发布此文件
php artisan vendor:publish --provider="PatrolServer\Patrol\PatrolServiceProvider"
当配置成功发布后,将在应用程序的配置文件夹中生成一个名为 patrol.php 的文件,您可以在该配置文件中输入您的 API 凭据和其他各种选项。
示例
SDK
您可以使用 Patrol 门面访问您的数据,该门面是 SDK 对象的包装函数。有关可用选项和更多信息,请参阅 PatrolServer API 文档 页面。
$user = Patrol::user(); $servers = Patrol::servers(); foreach ($servers as $server) { Log::info($server); }
Webhook
Webhook 是实时事件,每当在 PatrolServer 中发生事件时都会通知您。例如,您的服务器完成扫描并出现新的问题。Webhook 将被触发,作为开发者,您现在可以基于这些新信息进行交互。
在您的 routes.php 文件中,添加以下规则
Route::post('patrolserver/webhook', 'PatrolServerController@webhook');
在您的控制器中,您现在可以定义 webhook 函数。以下是如何使用 SDK 的快速示例
<?php App\Http\Controllers; use Illuminate\Routing\Controller; use Patrol; use Log; class PatrolServerController extends Controller { public function webhook() { Patrol::webhook('new_server_issues', function ($event) { $server_id = array_get($event, 'server_id'); if (!$server_id) Log::info('Server could not be found'); $server = Patrol::get('servers/' . $server_id); Log::info($server); }); Patrol::webhook('test', function ($event) { Log::info($event); }); } }
自动更新 Laravel 依赖项
此 Laravel 包提供了一种简单的方法来更新您的 Laravel 依赖项,当它们过时时。一旦包过时,PatrolServer 将向您的 Laravel 安装发送命令,并在您的根目录中执行 composer update 命令。
1. 每天运行命令一次
该包包含一个命令,通过在终端中运行 php artisan patrol:run 将所有安装的 Laravel 依赖项发送到 PatrolServer。如果您有一个运行中的 cronjob,该 cronjob 启动 Scheduler,您只需在您的 Kernel 文件中的调度函数中添加以下行即可。
protected function schedule(Schedule $schedule) { // This command will scan your modules on a daily basis, at midnight. $schedule->command('patrol:run')->dailyAt('00:00'); }
2. 启用默认 webhook
打开配置文件,将 enable_webhooks 设置为 true。这将启用包含自动更新代码的 URL 端点 (http://mywebsite.com/patrolserver/webhook)。
3. 将端点添加到您的账户
登录到 https://app.patrolserver.com,并转到 API 页面。您的 webhook URL 将采用以下格式 http://mywebsite.com/patrolserver/webhook。将您的 URL 添加到 webhook 部分,您就可以开始了。
一旦正确配置了自动更新,以下事件将会发生:每天午夜,您的服务器将软件包及其版本发送到 PatrolServer 扫描器。一旦服务器被扫描,就会在您的 patrolserver/webhook URL 触发 webhook,当包过时,包将触发 composer 更新这些。