jacobsteringa / odoo-client
Odoo 的 PHP 客户端
0.3.0
2016-05-15 14:52 UTC
Requires
- zendframework/zend-http: ~2.3
- zendframework/zend-xmlrpc: ~2.3
- zendframework/zendxml: 1.0.*
README
OdooClient 是一个 Odoo 的 PHP 客户端。它受到 simbigo 的 OpenERP API 的启发,并使用了一个大致相似的 API。它不是使用自有的 XML-RPC 客户端,而是依赖于 ZF 的 XML-RPC 和 XML 库。
支持的版本
这个库应该与 Odoo 8 和 9 兼容。如果您发现任何不兼容性,请创建一个问题或提交一个 pull request。
已知问题
- 在 v0.2.2 及以下版本中,Odoo::getReport() 方法与 Odoo 9 不兼容。
用法
实例化一个新的客户端。
use Jsg\Odoo\Odoo; $url = 'example.odoo.com/xmlrpc/2'; $database = 'example-database'; $user = 'user@email.com'; $password = 'yourpassword'; $client = new Odoo($url, $database, $user, $password);
为了让客户端正常工作,您必须包含 URL 中的 /xmlrpc/2
部分。
当您需要调整 XML-RPC 客户端使用的 HTTP 客户端时,您可以通过构造函数或 Odoo::setHttpClient
方法注入自定义的 HTTP 客户端。
use Jsg\Odoo\Odoo; use Zend\Http\Client as HttpClient; $httpClient = new HttpClient(null, [ 'sslverifypeer' => false, ]); // constructor argument $client = new Odoo($url, $database, $user, $password, $httpClient); // or setter $client = new Odoo($url, $database, $user, $password); $client->setHttpClient($httpClient);
xmlrpc/2/common 端点
获取版本信息。
$client->version();
获取时区信息。
$client->timezone();
没有登录/认证方法。客户端会为您进行认证,这就是为什么凭证作为构造函数参数传递。
xmlrpc/2/object 端点
搜索记录。
$criteria = [ ['customer', '=', true], ]; $limit = 10; $offset = 0; $client->search('res.partner', $criteria, $offset, $limit);
读取记录。
$ids = $client->search('res.partner', [['customer', '=', true]], 0, 10); $fields = ['name', 'email', 'customer']; $customers = $client->read('res.partner', $ids, $fields);
创建记录。
$data = [ 'name' => 'John Doe', 'email' => 'foo@bar.com', ]; $id = $client->create('res.partner', $data);
更新记录。
// change email address of user with current email address foo@bar.com $ids = $client->search('res.partner', [['email', '=', 'foo@bar.com']], 0, 1); $client->write('res.partner', $ids, ['email' => 'baz@quux.com']); // 'uncustomer' the first 10 customers $ids = $client->search('res.partner', [['customer', '=', true]], 0, 10); $client->write('res.partner', $ids, ['customer' => false]);
删除记录。
$ids = $client->search('res.partner', [['email', '=', 'baz@quuz.com']], 0, 1); $client->unlink('res.partner', $ids);
以 base64 格式获取报告。
$ids = $client->search('res.partner', [['customer', '=', true]], 0, 10); $report = $client->getReport('res.partner', $ids);
许可证
MIT 许可证。版权所有 © 2014 Jacob Steringa。