1. Go to this page and download the library: Download team-nifty-gmbh/plesk-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
team-nifty-gmbh / plesk-sdk example snippets
// List all domains
$domains = plesk()->domains()->listAllDomains()->send()->json();
// Create a new domain
$domain = plesk()->domains()->createNewDomain(
name: 'example.com',
hostingType: \TeamNifty\Plesk\Enums\DomainRequestHostingType::virtual,
ownerClientId: 1
)->send();
// Get domain details
$domain = plesk()->domains()->domainDetails(id: 123)->send()->dto();
use TeamNifty\Plesk\Facades\Plesk;
// List all domains
$domains = Plesk::domains()->listAllDomains()->send()->json();
// Create a new domain
$domain = Plesk::domains()->createNewDomain(
name: 'example.com',
hostingType: \TeamNifty\Plesk\Enums\DomainRequestHostingType::virtual,
ownerClientId: 1
)->send();
// Get domain details
$domain = Plesk::domains()->domainDetails(id: 123)->send()->dto();
use TeamNifty\Plesk\Plesk;
class PleskController extends Controller
{
public function __construct(
private Plesk $plesk
) {}
public function index()
{
$domains = $this->plesk->domains()->listAllDomains()->send()->json();
return view('domains.index', compact('domains'));
}
}
use TeamNifty\Plesk\Plesk;
$plesk = new Plesk(
url: 'https://your-plesk-server.com:8443',
username: 'admin',
password: 'your-password',
apiKey: 'your-api-key'
);
// List all clients
$clients = $plesk->clients()->listAllClients()->send()->json();
// Create a new client
$client = $plesk->clients()->createNewClientAccount(
login: 'john.doe',
email: '[email protected]',
type: \TeamNifty\Plesk\Enums\ClientType::CUSTOMER
)->send()->dto();
use TeamNifty\Plesk\Facades\Plesk;
use TeamNifty\Plesk\Enums\DomainRequestHostingType;
// Create a domain with hosting
$domain = Plesk::domains()->createNewDomain(
name: 'example.com',
description: 'My website',
hostingType: DomainRequestHostingType::virtual,
hostingSettings: [
'ftp_login' => 'example_ftp',
'ftp_password' => 'secure_password123'
],
ownerClientId: 1
)->send()->dto();
// Update domain
$updated = Plesk::domains()->updateDomain(
id: $domain->id,
description: 'Updated description'
)->send()->dto();
// Get domain status
$status = Plesk::domains()->getDomainStatus(id: $domain->id)->send()->dto();
// Delete domain
Plesk::domains()->deleteDomain(id: $domain->id)->send();
use TeamNifty\Plesk\Facades\Plesk;
use TeamNifty\Plesk\Enums\DatabaseType;
// Create a database
$database = Plesk::databases()->createDatabase(
name: 'myapp_db',
type: DatabaseType::mysql,
parentDomainId: 123,
serverId: 1
)->send()->dto();
// Create database user
$dbUser = Plesk::databases()->createDatabaseUser(
login: 'myapp_user',
password: 'secure_password',
databaseId: $database->id
)->send()->dto();
// List all databases
$databases = Plesk::databases()->getDatabases()->send()->json();
use TeamNifty\Plesk\Facades\Plesk;
use TeamNifty\Plesk\Enums\DnsRecordType;
// Get DNS records for a domain
$records = Plesk::dns()->getDomainOrDomainAliasDnsRecords(
domainId: 123
)->send()->json();
// Create a DNS record
$record = Plesk::dns()->createDomainOrDomainAliasDnsRecord(
domainId: 123,
type: DnsRecordType::A,
host: 'subdomain',
value: '192.168.1.100'
)->send()->dto();
// Update DNS record
$updated = Plesk::dns()->updateDnsRecord(
dnsRecordId: $record->id,
value: '192.168.1.101'
)->send()->dto();
// Delete DNS record
Plesk::dns()->deleteDnsRecord(dnsRecordId: $record->id)->send();
use Saloon\Exceptions\Request\RequestException;
try {
$domain = Plesk::domains()->domainDetails(id: 999)->send()->dto();
} catch (RequestException $e) {
$status = $e->getStatus(); // HTTP status code
$response = $e->getResponse(); // Saloon Response object
$body = $e->getResponse()->body(); // Response body
// Handle the error
Log::error('Plesk API error', [
'status' => $status,
'message' => $body
]);
}
use TeamNifty\Plesk\Plesk;
use Saloon\Http\Faking\MockResponse;
use Saloon\Laravel\Facades\Saloon;
// Mock specific requests
Saloon::fake([
'domains' => MockResponse::make(['id' => 1, 'name' => 'example.com'], 200),
]);
// Your test code
$domain = Plesk::domains()->listAllDomains()->send();
// Assert the request was sent
Saloon::assertSent(function ($request) {
return $request instanceof \TeamNifty\Plesk\Requests\Domains\ListAllDomains;
});