xelon-ag / vmware-php-client
PHP API Client for VmWare
Installs: 4 072
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 2
Open Issues: 2
pkg:composer/xelon-ag/vmware-php-client
Requires
- php: ^8.0|^8.1|^8.2|^8.3
- ext-soap: *
- guzzlehttp/guzzle: ^7.0.1
- illuminate/contracts: ^8.0|^9.0|^10.0|^11.0|^12.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^6.1
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- dev-main
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/github_actions/actions/checkout-6
- dev-dependabot/github_actions/stefanzweifel/git-auto-commit-action-7
- dev-fix/import-vapp-builder
- dev-feat/clone-device-from-snapshot
- dev-feat/change-guest-id
- dev-dependabot/github_actions/actions/checkout-5
- dev-fix/import-v-app-config
- dev-fix/chart-array
- dev-fix/fix-init-session
- dev-feat/obj-to-array-new-item
- dev-fix/response-type
- dev-fix/carbon-update-diff-in-seconds
- dev-fix/session-re-creation-bug
- dev-feat/refactor-reconfigureComputeResource
- dev-feat/editSnapshot
- dev-dependencies
- dev-feat/phpstan
- dev-feat/get-all-networks
- dev-feat/change-disk-type
- dev-feat/system-events
- dev-fix/multiple-siblings-xml-tags
- dev-fix/new-type
- dev-feat/connect-network-adapter
- dev-fix/floppy-device-classes
- dev-feat/add-new-network-class
- dev-feat/add-virtual-devices
- dev-develop
- dev-fix/isset-issue
- dev-feat/import
- dev-test-merge
- dev-fix/hide-password-in-logs
- dev-feat/add-request-event
- dev-php8.x-support
This package is auto-updated.
Last update: 2025-11-24 07:03:23 UTC
README
PHP API Client for VMWare
Installation
You can install the package via composer:
composer require xelon-ag/vmware-php-client
You can publish the config file with:
php artisan vendor:publish --tag="vmware-php-client-config"
return [ 'session_ttl' => env('VMWARE_SESSION_TTL', 10), 'enable_logs' => env('VMWARE_ENABLE_LOGS', true), ];
Getting started
Create a connection to your hypervisor so that you can call the methods:
$vcenterClient = new Xelon\VmWareClient\VcenterClient( 'https://10.20.30.40', 'mylogin', 'mypassword' ); $vmInfo = $vcenterClient->getVmInfo('vm-123');
This lib can run in three modes: rest, soap and both. By default, it runs in rest mode, but you can set another mode in constructor:
$vcenterClient = new Xelon\VmWareClient\VcenterClient( 'https://10.20.30.40', 'mylogin', 'mypassword', 'soap' );
Yet we recommend to use constants:
$vcenterClient = new Xelon\VmWareClient\VcenterClient( 'https://10.20.30.40', 'mylogin', 'mypassword', Xelon\VmWareClient\VcenterClient::MODE_SOAP );
rest mode
With rest mode you can use REST methods which you can find in the VMWare API developer center.
For now, the lib has only some methods available. You can find full list of files in the vendor/xelon-ag/vmware-php-client/src/Traits/Rest folder.
We plan to add the full list of methods later.
soap mode
Using soap mode allow you to use SOAP methods which you can find in VMWare SOAP developer center.
For now, the lib has only some methods available. You can find full list of files in the vendor/xelon-ag/vmware-php-client/src/Traits/SOAP folder.
We plan to add the full list of methods later.
Here's how to make your first SOAP call:
$folder = $vcenterClient->soap->createFolder('group-v3', 'foldername');
If you want to use both modes at one time you can set both mode (Xelon\VmWareClient\VcenterClient::MODE_BOTH).
If you want to run custom soap method, which you do not find in lib, you can run this method directly:
$vcenterClient = new Xelon\VmWareClient\VcenterClient( 'https://10.20.30.40', 'mylogin', 'mypassword', Xelon\VmWareClient\VcenterClient::MODE_SOAP ); $taskInfo = $vcenterClient->soap->request('ReconfigureComputeResource_Task', [ '_this' => [ '_' => 'domain-c33', 'type' => 'ComputeResource', ], 'spec' => [ '@type' => 'ClusterConfigSpecEx', 'drsConfig' => [ '@type' => 'ClusterDrsConfigInfo', ], 'rulesSpec' => [ '@type' => 'ClusterRuleSpec', 'operation' => 'add', 'info' => [ '@type' => 'ClusterAntiAffinityRuleSpec', 'enabled' => true, 'name' => 'VM-VM Affinity rule', 'userCreated' => true, 'vm' => [ ['_' => 'vm-133', 'type' => 'VirtualMachine'], ['_' => 'vm-134', 'type' => 'VirtualMachine'] ] ], ], 'dpmConfig' => [ '@type' => 'ClusterDpmConfigInfo', ], ], 'modify' => false, ])
Order of parameters is very important. You can find the correct order in the documentation, the
WSDL type definitionsection for each object type.
Credits
Questions and feedback
If you've got questions about setup or just want to chat with the developer, please feel free to reach out to a.hazhur@bitcat.agency.
License
The MIT License (MIT). Please see License File for more information.