On Thu, Mar 26, 2009 at 01:10:12PM +0000, Daniel P. Berrange wrote: > On Wed, Mar 25, 2009 at 10:01:22PM +0100, Radek Hladik wrote: > > Option 2) The other option is to create Zend extension which should be > > able to call libvirt directly from C. However I've never done anything > > like that so I do not know, whether it is reasonable or not. > > This is the option we'd recommend. A few people have expressed interest in > this idea in the past, but unforatuntely I'm not aware of anyone having > written any code for this yet. We'd very much like to see a PHP binding > for libvirt developed & happy to give advice/support to anyone attempting > this. It is definitely doable, but I don't know how much of a hard learning > curve PHP C extensions have... > > The libvirt API is quite large, but of course you would not need to suport > every single API in PHP. You could build it up incrementally focusing on > the APIs that you actually need in your applicaiton. Agreed, option 2) sounds the most sane to me. There is a XML description of the API as libvirt-api.xml under docs either in the tarball or in the developper package (at least RPM one) this may (or not) be helpful in autogenerating some of the binding code. E.g: <function name='virDomainCreateXML' file='libvirt' module='libvirt'> <info>Launch a new guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).</info> <return type='virDomainPtr' info='a new domain object or NULL in case of failure'/> <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/> <arg name='xmlDesc' type='const char *' info='string containing an XML description of the domain'/> <arg name='flags' type='unsigned int' info='callers should always pass 0'/> </function> you have automatic description of the parameters, names and types as well as the return value. At least of the simple bindings it may help. Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list