Require TypeDefinitions.inc in the WsdlClassMapper. This seems like the appropriate place to do this but I'm open to a better solution. Kinda feel like I was missing something since practically no SOAP requests will work without this. Also throw an exception if the class map is supposed to be cached but fails. If you're expecting this to be cached but directory permissions prevent it you are going to be wasting a lot of processing time generating it over and over again so it's good to get that feedback instead of debugging why your script is timing out. Maybe a warning would be more appropriate.
Removed require_once call for TypeDefinitions.inc because a proper composer.json setup should take care of that.
Removing xsi: suffix was making it impossibel for vSphere to determin the types of some structs like CustomizationFixedIp and CustomizationLinuxOptions. Anything that could be more than one type was being assumed as the default and then errors would ensue when the object had properties not present on the default.
Added a getId method on VirtualMachine that returns its ID in vcenter.
Allow the PropertyCollector to return results even if there is no class present that extends ManagedObject for that specific type of ManagedObject. It just needs to be of the same type that we are looking for.
Fixed formatting
Merged upstream
Added more detailed error messaging for SoapFaults. It's hacked in kinda ugly right now, could probably make another class for doing this kind of stuff.
Added Folder class extending ManagedObject with methods for finding child entities by name and traversing descendant folders.
Fixed bug where Exception was not using the global namespace
Added create option to Folder->getChild and Folder->getFolderByPath so you can optionally automatically create folders you are looking for if they don't exist.
isMethodAPropertyRetrieval was too greedy, preventing any ManagedObject method beginning with 'Get' from being called. Now it only considers a method to be property retrieval if it begins with 'get'
Removed getId method from VirtualMachine because it is more suited for ManagedObject and the functionality is already covered by getReferenceId
Added clone session functionality. Instead of authenticating every time it needs to connect, Service now will use SessionManager->AcquireCloneTicket and SessionManager->CloneSession to reuse an existing session if possible.
Added getHardware method to the VirtualMachine extension which returns config->hardware.
Added faultstring to SoapFault handling.
Added getConfig and getGuestInfo methods to VirtualMachine class.
Had to remove the getConfig method of VirtualMachine because it conflicts with a Service->isMethodAPropertyRetrieval. Essentially, getConfig was already a method of VirtualMachine because it starts with 'get'. For some reason if I add getConfig literally onto VirtualMachine it always returns null.
Merge pull request #2 from rgrwkmn/master

Throw an error if wsdl class map caching is enabled but cache is not writable