built-fast / vector-pro-sdk
PHP SDK for the Vector Pro API
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 2
pkg:composer/built-fast/vector-pro-sdk
Requires
- php: ^8.3
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- guzzlehttp/psr7: ^2.0
- laravel/pint: ^1.27
- mockery/mockery: ^1.6
- pestphp/pest: ^3.0
- phpstan/phpstan: ^2.1
This package is auto-updated.
Last update: 2026-02-06 03:50:46 UTC
README
Vector Pro SDK for PHP
Official PHP SDK for Vector Pro by BuiltFast.
Requirements
- PHP 8.3+
- A PSR-18 HTTP client (e.g., Guzzle)
Installation
composer require built-fast/vector-pro-sdk
You'll also need a PSR-18 HTTP client. If you don't have one:
composer require guzzlehttp/guzzle
Quick Start
use GuzzleHttp\Client; use GuzzleHttp\Psr7\HttpFactory; use VectorPro\VectorProClient; use VectorPro\VectorProClientConfig; $config = new VectorProClientConfig( apiKey: 'your-api-key', ); $factory = new HttpFactory(); $client = new VectorProClient( $config, new Client(), $factory, $factory, ); // List all sites (returns PaginatedResponse<Site>) $response = $client->sites->list(); foreach ($response->data as $site) { echo $site->id . ': ' . $site->partner_customer_id . "\n"; } // Get a specific site (returns Site) $site = $client->sites->get('site-id'); echo $site->dev_php_version; // '8.3'
Response Objects
All API methods return typed response objects for IDE autocomplete and type safety:
use VectorPro\Response\Actor; use VectorPro\Response\Deployment; use VectorPro\Response\Environment; use VectorPro\Response\Event; use VectorPro\Response\PaginatedResponse; use VectorPro\Response\Site; // Site properties $site = $client->sites->get('site-id'); $site->id; // string $site->partner_customer_id; // string $site->dev_php_version; // string $site->tags; // string[] $site->status; // ?string $site->created_at; // ?string $site->updated_at; // ?string // Paginated responses $response = $client->sites->list(['per_page' => 10, 'page' => 2]); $response->data; // Site[] $response->current_page; // int $response->per_page; // int $response->total; // int $response->last_page; // int
API Reference
Sites
// Returns PaginatedResponse<Site> $client->sites->list(['per_page' => 10, 'page' => 1]); // Returns Site $client->sites->get('site-id'); $client->sites->create(['partner_customer_id' => 'cust-123', 'dev_php_version' => '8.3']); $client->sites->update('site-id', ['tags' => ['production']]); $client->sites->clone('site-id'); // Returns array $client->sites->delete('site-id'); $client->sites->suspend('site-id'); $client->sites->unsuspend('site-id'); $client->sites->resetSftpPassword('site-id'); $client->sites->getLogs('site-id', ['type' => 'error', 'lines' => 100]); $client->sites->purgeCache('site-id', ['paths' => ['/wp-content/*']]);
Environments
// Returns Environment[] $client->environments->list('site-id'); // Returns Environment $client->environments->get('env-id'); $client->environments->create('site-id', [ 'name' => 'staging', 'php_version' => '8.3', 'is_production' => false, ]); $client->environments->update('env-id', ['php_version' => '8.2']); // Returns array $client->environments->delete('env-id'); $client->environments->resetDatabasePassword('env-id');
Deployments
// Returns PaginatedResponse<Deployment> $client->environments->deployments->list('env-id'); // Returns Deployment $client->environments->deployments->create('env-id', [ 'description' => 'Release v1.0', 'include_uploads' => true, ]); $client->environments->deployments->get('deployment-id'); $client->environments->deployments->rollback('env-id', ['deployment_id' => 'prev-id']);
Database
// Returns ImportStatus $client->sites->db->import('site-id', [ 'url' => 'https://example.com/backup.sql.gz', 'search_replace' => [ ['search' => 'old-domain.com', 'replace' => 'new-domain.com'], ], ]); $client->sites->db->createImportSession('site-id', ['filename' => 'backup.sql']); $client->sites->db->runImport('site-id', 'import-id'); $client->sites->db->getImportStatus('site-id', 'import-id'); // Returns ExportStatus $client->sites->db->createExport('site-id', ['format' => 'sql']); $client->sites->db->getExportStatus('site-id', 'export-id'); // Returns array $client->sites->db->resetPassword('site-id');
WAF (Web Application Firewall)
// Allowed referrers $client->sites->waf->listAllowedReferrers('site-id'); $client->sites->waf->addAllowedReferrer('site-id', ['hostname' => 'trusted.com']); $client->sites->waf->removeAllowedReferrer('site-id', 'trusted.com'); // Blocked referrers $client->sites->waf->listBlockedReferrers('site-id'); $client->sites->waf->addBlockedReferrer('site-id', ['hostname' => 'spam.com']); $client->sites->waf->removeBlockedReferrer('site-id', 'spam.com'); // Blocked IPs $client->sites->waf->listBlockedIPs('site-id'); $client->sites->waf->addBlockedIP('site-id', ['ip' => '192.168.1.1']); $client->sites->waf->removeBlockedIP('site-id', '192.168.1.1'); // Rate limiting $client->sites->waf->listRateLimits('site-id'); $client->sites->waf->createRateLimit('site-id', [ 'path' => '/wp-login.php', 'requests_per_second' => 5, 'block_duration' => 300, ]); $client->sites->waf->getRateLimit('site-id', 'rule-id'); $client->sites->waf->updateRateLimit('site-id', 'rule-id', ['requests_per_second' => 10]); $client->sites->waf->deleteRateLimit('site-id', 'rule-id');
SSL
// Returns SslStatus $client->sites->ssl->getStatus('env-id'); // Returns array $client->sites->ssl->nudge('env-id');
SSH Keys
// Account-level - Returns SshKey[] or SshKey $client->account->sshKeys->list(); $client->account->sshKeys->create(['name' => 'My Key', 'public_key' => 'ssh-ed25519 ...']); $client->account->sshKeys->get('key-id'); $client->account->sshKeys->delete('key-id'); // Site-level - Returns array $client->sites->sshKeys->list('site-id'); $client->sites->sshKeys->attach('site-id', ['ssh_key_id' => 'key-id']); $client->sites->sshKeys->detach('site-id', 'key-id');
Secrets
// Global secrets - Returns Secret[] or Secret $client->account->secrets->list(); $client->account->secrets->create(['name' => 'API_KEY', 'value' => 'secret']); $client->account->secrets->get('secret-id'); $client->account->secrets->update('secret-id', ['value' => 'new-secret']); $client->account->secrets->delete('secret-id'); // Environment secrets - Returns Secret[] or Secret $client->environments->secrets->list('env-id'); $client->environments->secrets->create('env-id', ['name' => 'DB_HOST', 'value' => 'localhost']); $client->environments->secrets->get('secret-id'); $client->environments->secrets->update('secret-id', ['value' => 'newhost']); $client->environments->secrets->delete('secret-id');
Webhooks
// Returns Webhook[] or Webhook $client->webhooks->list(); $client->webhooks->get('webhook-id'); $client->webhooks->create([ 'url' => 'https://example.com/webhook', 'events' => ['site.created', 'deployment.completed'], ]); $client->webhooks->update('webhook-id', ['enabled' => false]); $client->webhooks->rotateSecret('webhook-id'); // Returns array $client->webhooks->delete('webhook-id'); $client->webhooks->listLogs('webhook-id');
API Keys
// Returns ApiKey[] or ApiKey $client->account->apiKeys->list(); $client->account->apiKeys->create(['name' => 'CI/CD Key']); // Returns array $client->account->apiKeys->delete('key-id');
Events
// Returns PaginatedResponse<Event> $response = $client->events->list([ 'site_id' => 'site-id', 'type' => 'deployment', 'per_page' => 50, ]); // Event properties $event = $response->data[0]; $event->id; // string $event->event; // string (e.g., 'site.created', 'deployment.completed') $event->model_type; // ?string $event->model_id; // ?string $event->context; // mixed $event->actor; // ?Actor (ip, token_name) $event->occurred_at; // ?string $event->created_at; // ?string
PHP Versions
$client->phpVersions->list();
License
MIT