PHP code example of team-nifty-gmbh / plesk-sdk

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;
});
bash
php artisan vendor:publish --tag=plesk-config