php-arsenal / salesforce-mapper-bundle
Symfony 扩展包,用于将 Salesforce 原始对象映射到您的模型。
4.6.1
2021-09-16 11:50 UTC
Requires
- php: >=8.0
- doctrine/cache: ^1.11
- doctrine/common: ^3.1.0
- doctrine/mongodb-odm-bundle: ^4.3
- friendsofphp/proxy-manager-lts: ^1.0
- php-arsenal/salesforce-bundle: ^4.0
- sensio/framework-extra-bundle: ^6.1.0
- symfony/dependency-injection: ^5.2
- symfony/event-dispatcher: ^5.2
- symfony/http-kernel: ^5.2
Requires (Dev)
- phpunit/php-code-coverage: ^9.0
- phpunit/phpunit: ^9.0
- dev-master
- 4.6.1
- 4.6.0
- 4.5.3
- 4.5.2
- 4.5.1
- 4.5.0
- 4.4.1
- 4.4.0
- 4.3.9
- 4.3.8
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.8.0
- 3.7.1
- 3.7.0
- 3.6.5
- 3.6.4
- 3.6.3
- 3.6.2
- 3.6.1.x-dev
- 3.6.1
- 3.6
- 3.5.1
- 3.5.0
- 3.4.1
- 3.4.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 0.2.1
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1
- dev-wsdlvalidator
- dev-test-helper
- dev-revert-1-test-helper
- dev-php7
This package is auto-updated.
Last update: 2024-09-16 18:12:52 UTC
README
简介
该 Symfony 扩展包可以帮助您有效地将 Salesforce 对象检索并映射到您自己的模型,以便稍后与 Doctrine 或独立使用。
安装
composer require php-arsenal/salesforce-mapper-bundle
功能
- 轻松从 Salesforce 获取记录,并将这些记录保存回 Salesforce:保存时自动忽略只读字段。
- 根据 Doctrine 中的标准进行查询。
- 一次性获取相关记录,从而节省 API 调用。
- 调整映射以精确检索和保存记录。
- MappedBulkSaver 通过使用映射对象的批量创建、删除、更新和合并来帮助您保持在 Salesforce API 限制内。
- 完全单元测试(仍在进行中)。
使用方法
安装完成后,该扩展包提供了一些服务,这些服务已自动注入以供依赖注入使用
- a mapper:
PhpArsenal\SalesforceMapperBundle\Mapper
- a bulk saver:
PhpArsenal\SalesforceMapperBundle\MappedBulkSaver
获取筛选后的记录
使用 mapper 从 Salesforce 获取记录。示例
<?php use PhpArsenal\SalesforceMapperBundle\Mapper; use PhpArsenal\SalesforceMapperBundle\Model\Opportunity; class MyService { private $mapper; public function __construct(Mapper $mapper) { $fetchedObjects = $mapper->findBy(new Opportunity(), [ 'Name' => 'Just an opportunity', ]); } }
您甚至可以通过关联对象获取相关记录
... $opportunity = $fetchedObjects[0]; echo 'The opportunity belongs to: ' . $opportunity->getAccount()->getName(); ...
获取所有记录
... $fetchedObjects = $mapper->findAll(Opportunity::class); ...
保存记录
如果您创建了一个新记录并将其保存,则 Salesforce 分配给它的 ID 可通过 getId()
访问。
... $opportunity = new Opportunity(); $opportunity->setName('Some name'); echo $opportunity->getId(); // Returns null $mapper->save($account); echo $account->getId(); // Returns the new ID, e.g. `001D000000h0Jod` ...
PhpArsenal\SalesforceMapperBundle\MappedBulkSaver
可以用于批量保存多个对象。
自定义对象和属性
在 Model
文件夹中,您将找到几个标准 Salesforce 对象。由于这是一个通用客户端扩展包,因此该目录不包含自定义对象,目录中的对象也没有自定义属性。
如果您想添加自定义对象或属性,请从 AbstractModel
或提供的模型扩展。
映射器知道如何通过读取属性上方的注解来映射字段
... use PhpArsenal\SalesforceMapperBundle\Annotation as Salesforce; ... /** * @var string * @Salesforce\Field(name="AccountId") */ protected $accountId; ...