plesk/api-php-lib

PHP object-oriented library for Plesk XML-RPC API

v2.2.1 2025-04-04 10:05 UTC

Requires

  • php: ^7.4 || ^8.0
  • ext-curl: *
  • ext-dom: *
  • ext-simplexml: *
  • ext-xml: *

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Apache-2.0 2ceece815106b8997319bcc62fe79d5fe095c65f

  • Alexei Yuzhakov <sibprogrammer.woop@gmail.com>
  • WebPros International GmbH. <plesk-dev-leads.woop@plesk.com>

README

👁 Test Status
👁 Scrutinizer Code Quality
👁 codecov

PHP object-oriented library for Plesk XML-RPC API.

Install Via Composer

Composer is a preferable way to install the library:

composer require plesk/api-php-lib

Usage Examples

Here is an example on how to use the library and create a customer with desired properties:

$client = new \PleskX\Api\Client($host);
$client->setCredentials($login, $password);

$client->customer()->create([
 'cname' => 'Plesk',
 'pname' => 'John Smith',
 'login' => 'john',
 'passwd' => 'secret',
 'email' => 'john@smith.com',
]);

It is possible to use a secret key instead of password for authentication.

$client = new \PleskX\Api\Client($host);
$client->setSecretKey($secretKey)

In case of Plesk extension creation one can use an internal mechanism to access XML-RPC API. It does not require to pass authentication because the extension works in the context of Plesk.

$client = new \PleskX\Api\InternalClient();
$protocols = $client->server()->getProtos();

For additional examples see tests/ directory.

How to Run Unit Tests

One the possible ways to become familiar with the library is to check the unit tests.

To run the unit tests use the following command:

REMOTE_HOST=your-plesk-host.dom REMOTE_PASSWORD=password composer test

To use custom port one can provide a URL (e.g. for Docker container):

REMOTE_URL=https://your-plesk-host.dom:port REMOTE_PASSWORD=password composer test

One more way to run tests is to use Docker:

docker-compose run tests

Continuous Testing

During active development it could be more convenient to run tests in continuous manner. Here is the way how to achieve it:

REMOTE_URL=https://your-plesk-host.dom:port REMOTE_PASSWORD=password composer test:watch