neclimdul/netsuite-search-iterator

帮助在 netsuite-php 中迭代搜索结果的库。

v1.1.0 2024-05-18 16:17 UTC

This package is auto-updated.

Last update: 2024-09-18 17:32:43 UTC


README

这提供了一个原生的 PHP 迭代器,允许快速轻松地与 NetSuite 的 SOAP 搜索接口集成。这个接口需要遍历分页结果,有很多样板代码,这使得这个过程更加容易且更少出错。

示例

<?php

$search = new ContactSearchBasic();
$search->email = new SearchStringField();
$search->email->operator = SearchStringFieldOperator::is;
$search->email->searchValue = 'joe@example.com';
$iterator = new SearchIterator($service, $search, Contact::class, 20);
try {
  foreach ($iterator as $record) {
    // process results
  }
}
catch (\SoapFault $e) {
  // Handle exception
}
catch (\NecLimDul\NetSuiteSearchIterator\Exception\StatusFailure $e) {
  // Handle exception
}

循环足以与这个迭代器交互,但它也可以与生成器和 \nikic\iter 库一起使用。

<?php
fetchCustomer($date) {
  $search = new CustomerSearchBasic();
  $search->lastModifiedDate = new SearchDateField();
  $search->lastModifiedDate->operator = SearchDateFieldOperator::after;
  $search->lastModifiedDate->searchValue = date(DATE_ISO8601, $date);
  $iterator = new SearchIterator($service, $search);
  foreach ($iterator as $record) {
    yield convertCustomer($record);
  }
}
// This is a pretty weird filter not to include in your search but easy to read.
$mylist = \iter\filter(fn($customer) => $customer->isActive, fetchCustomer('2020-09-09'));
foreach ($mylist as $customer) {
  print($customer->companyName);
}