PHP code example of maeandrew / novaposhta-address-resolver
1. Go to this page and download the library: Download maeandrew/novaposhta-address-resolver library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
maeandrew / novaposhta-address-resolver example snippets
use MaeAndrew\NovaPoshtaAddressResolver\AddressResolver;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\AddressInput;
$resolver = new AddressResolver($locationProvider);
$result = $resolver->resolve(
AddressInput::fromText('Київ, відділення №285')
);
if ($result->isResolved()) {
$settlementRef = $result->settlement?->ref;
$warehouseRef = $result->warehouse?->ref;
} elseif ($result->needsReview()) {
foreach ($result->candidates as $candidate) {
// Show candidates to a person and persist only after an explicit choice.
}
}
$safePayload = $result->toArray();
use MaeAndrew\NovaPoshtaAddressResolver\Contracts\LocationProvider;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\ProviderHealth;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\ProviderResult;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\Settlement;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\SettlementQuery;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\Warehouse;
use MaeAndrew\NovaPoshtaAddressResolver\DTO\WarehouseQuery;
final class MyLocationProvider implements LocationProvider
{
public function searchSettlements(SettlementQuery $query): ProviderResult
{
// Query the chosen source and return list<Settlement>.
return new ProviderResult([]);
}
public function searchWarehouses(
Settlement $settlement,
WarehouseQuery $query,
): ProviderResult {
// Query only warehouses belonging to $settlement->ref.
return new ProviderResult([]);
}
public function healthCheck(): ProviderHealth
{
return ProviderHealth::healthy('my-provider');
}
}
use MaeAndrew\NovaPoshtaAddressResolver\DTO\ResolutionPolicy;
use MaeAndrew\NovaPoshtaAddressResolver\Matching\StrictMatchingStrategy;
$resolver = new AddressResolver(
$locationProvider,
matchingStrategy: new StrictMatchingStrategy(),
policy: new ResolutionPolicy(
autoResolveThreshold: 0.90,
ambiguityMargin: 0.08,
),
);
use MaeAndrew\NovaPoshtaAddressResolver\AI\StructuredAddressAiInterpreter;
use MaeAndrew\NovaPoshtaAddressResolver\OpenAI\OpenAiStructuredAiProvider;
$structuredProvider = new OpenAiStructuredAiProvider(
$httpClient,
$requestFactory,
$streamFactory,
$_ENV['OPENAI_API_KEY'],
);
$resolver = new AddressResolver(
$locationProvider,
aiInterpreter: new StructuredAddressAiInterpreter($structuredProvider),
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.