stayallive/plesk-php-api

This package is abandoned and no longer maintained. No replacement package was suggested.

PHP object-oriented library for communicating with the Plesk XML-RPC API.

v0.1.0 2017-01-07 21:29 UTC

This package is auto-updated.

Last update: 2020-03-04 16:16:01 UTC


README

Install Via Composer

Composer is a preferred way to install.

Run: composer require stayallive/plesk-php-api:0.1.* in your project.

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->setCredentials($login, $password);
+$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 of 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 ./vendor/bin/phpunit

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 ./vendor/bin/phpunit`

You can start a Docker container for testing using:

docker run -d -it -p 8443:8443 plesk/plesk

After which the container is available on http://localhost:8443 assuming you run Docker local and you can run:

REMOTE_URL=https://127.0.0.1:8443 REMOTE_PASSWORD=changeme ./vendor/bin/phpunit`

You can also run single groups of test using the --group parameters, to list al available groups:

./vendor/bin/phpunit --list-groups

To run the Customer tests:

REMOTE_URL=https://127.0.0.1:8443 REMOTE_PASSWORD=changeme ./vendor/bin/phpunit --group customer

Using Grunt for Continuous Testing

  • Install node.js and install grunt globally: npm -g install grunt
  • Install dependencies via npm install or yarn install command
  • Run REMOTE_HOST=your-plesk-host.dom REMOTE_PASSWORD=password grunt watch:test