Súbežné dávkové čítanie
batch() rozošle zoznam čítaní v jednom kole Http::pool() a vráti BatchResult podľa kľúčov, ktorý oddeľuje úspechy od chýb jednotlivých kľúčov — výnimka nastane, len ak o ňu požiadate:
$github = Git::github();
$result = $github->batch()->languages(['acme/api', 'acme/web']); // BatchResult<array<string,int>>
$result->results(); // ['acme/api' => ['PHP' => 80, ...], ...]
$result->get('acme/api'); // one key's result, or null
$result->successful(); // true when no key failed
$result->failed();
count($result); // successful keys
foreach ($result->errors() as $key => $error) { // BatchError: key, status, message
report("{$key} failed with {$error->status}");
}
$result->throwOnError(); // raises BatchRequestException if any key failedDostupné dávky
$github->batch()->repositories(['acme/api', 'acme/web']); // BatchResult<Repository>
$github->batch()->contents('acme/api', ['README.md', 'composer.json']); // BatchResult<FileContent>, keyed by file
$github->batch()->contents('acme/api', ['README.md'], ref: 'develop');
$github->batch()->pullRequest(['main' => 'acme/api#7']); // id => PullRequest, ref "path#number"- repositories($paths) a languages($paths) — kľúčom je cesta repozitára.
- contents($path, $files, $ref) — súbory z jedného repozitára, kľúčom je cesta súboru.
- pullRequest($references) — vlastné kľúče namapované na odkazy v tvare path#number.
Požiadavky v poole nesú rovnaké prihlásenie ako jednotlivé požiadavky vrátane samoobnovujúcich sa údajov, ale obchádzajú podmienenú ETag cache. Vstupy väčšie ako batch.concurrency (predvolene 25) sa rozdelia do viacerých poolov za sebou.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.