Composer is a preferred way to install.
Run: composer require stayallive/plesk-php-api:0.1.*
in your project.
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.
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
- Install node.js and install grunt globally:
npm -g install grunt
- Install dependencies via
npm install
oryarn install
command - Run
REMOTE_HOST=your-plesk-host.dom REMOTE_PASSWORD=password grunt watch:test