alazzi-az / laraodoo-xmlrpc
Odoo-Xmlrpc PHP for Laravel 是一款强大的 PHP API 客户端,允许您与 Odoo XML-RPC API 进行交互
v1.0.3
2023-07-22 20:03 UTC
Requires
- php: ^8.1.0
- alazzi-az/odoo-xmlrpc: ^1.0
- laravel/framework: ^9.0.0|^10.0.0
Requires (Dev)
- laravel/pint: ^1.10
- pestphp/pest: ^2.9
README
Odoo XML-RPC 客户端 是一个 PHP 包,它提供了一个简单易用的接口来与 Odoo XML-RPC API 交互。与需要扩展或其他依赖项的其他 Odoo 客户端不同,此客户端使用 laminas/laminas-xmlrpc 包,这是 XML-RPC 协议的纯 PHP 实现。
要求
- PHP 8.1 或更高版本
开始使用
首先,使用 Composer 包管理器安装 laraodoo-xmlrpc
composer require alazzi-az/laraodoo-xmlrpc
接下来,发布配置文件
php artisan vendor:publish --provider="Alazzidev\LaraodooXmlrpc\ServiceProvider"
这将创建一个在您的项目中的 config/odoo-xmlrpc..php 配置文件,您可以使用环境变量对其进行修改以满足您的需求
return [ 'url' => env('ODOO_URL', ''), 'suffix' => 'xmlrpc/2', 'db' => env('ODOO_DB', ''), 'username' => env('ODOO_USERNAME', ''), 'password' => env('ODOO_PASSWORD', ''), ];
最后,您可以使用 Odoo 门面来访问 Odoo Xml API
use Alazzidev\LaraodooXmlrpc\Facades\Odoo; $result = Odoo::model('res.partner')->create([ 'test1'=>'test1-value', 'test2'=>'test2-value' ]);
用法
有关用法示例,请参阅 alazzi-az/odoo-xmlrpc 仓库。
用例
在 Cummonity 版本 "account.move" 中创建发票
use Alazzidev\LaraodooXmlrpc\Facades\Odoo; // Define invoice line $line = [ 0, false, [ 'currency_id' => $currency_id, 'discount' => $discountPercentage, 'display_type' => 'product', 'name' => $name, 'price_unit' => $price_unit, 'product_id' => $product_id, 'quantity' => $quantity, 'tax_ids' => $tax_ids, ] ]; $invoice_lines = [$line]; // Define invoice data $invoice = [ 'partner_id' => $partner_id, 'name' => $name, 'invoice_date' => $invoice_date, 'invoice_date_due' => $invoice_date_due, 'payment_reference' => $payment_reference, 'invoice_line_ids' => $invoice_lines, 'currency_id' => $currency_id, 'invoice_payment_term_id' => $payment_term_id, 'state' => $state, 'journal_id' => $journal_id, 'move_type' => 'out_invoice', ]; // Create invoice using Odoo External API $odoo = Odoo::model('account.move'); $odoo_invoice_id = $odoo->create($invoice);
测试
Odoo 门面包含一个 fake() 方法,允许您模拟 API 响应。
模拟响应将按照提供给 fake() 方法的顺序返回。
所有响应都具有 fake() 方法,允许您通过仅提供与您的测试案例相关的参数来轻松创建响应对象。
use Alazzidev\LaraodooXmlrpc\Facades\Odoo; Odoo::fake([ 'test1'=>'test1-value', 'test2'=>'test2-value' ]); $response = Odoo::create('res.partner',[ 'test1'=>'test1-value', 'test2'=>'test2-value' ]); expect($response['test1'])->toBe('test1-value');
并且您可以在这里运行测试
composer test:unit
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。