1tomany/php-geocoder-bundle

Symfony bundle that provides bindings for the 1tomany/php-geocoder package

Maintainers

Package info

github.com/1tomany/php-geocoder-bundle

Type:symfony-bundle

pkg:composer/1tomany/php-geocoder-bundle

Transparency log

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.1 2026-08-21 07:04 UTC

This package is auto-updated.

Last update: 2026-08-21 07:18:18 UTC


README

This package wraps the 1tomany/php-geocoder library into an easy to use Symfony bundle.

Installation

Install the bundle using Composer:

composer require 1tomany/php-geocoder-bundle

Configuration

To change the default configuration, create a file named onetomany_geocoder.yaml in config/packages/ with the following contents and adjust accordingly:

onetomany_geocoder:
    transport:
        http_client: http_client

    google:
        api_key: "%env(GOOGLE_API_KEY)%"
        api_version: v4

    mock: false

The transport uses Symfony's http_client service by default, so the transport block can normally be omitted. The bundle injects Symfony's serializer service into the transport.

The google block is optional. If it is omitted, the Google provider is not registered with the GeocoderClient. The Mock provider is disabled by default and can be enabled in the test environment with the following configuration:

when@test:
    onetomany_geocoder:
        mock: true

Usage

Inject the OneToMany\Geocoder\Contract\GeocoderClientInterface client and use its resources:

use OneToMany\Geocoder\Contract\GeocoderClientInterface;
use OneToMany\Geocoder\Resource\Geocode;
use OneToMany\Geocoder\Resource\Reverse;
use OneToMany\Geocoder\Vendor;

final readonly class GeocodeAddress
{
    public function __construct(
        private GeocoderClientInterface $geocoderClient,
    ) {
    }

    public function __invoke(string $path): void
    {
        $response = $this->geocoderClient->geocode(
            Vendor::Google,
            new Geocode(
                street: '123 Main Street',
                unit: null,
                city: 'Dallas',
                zip: '75205',
                state: 'TX',
                country: null,
            ),
        );

        $response = $this->geocoderClient->reverse(
            Vendor::Google,
            new Reverse(
                latitude: 32.10391494,
                longitude: -96.3931030,
            ),
        );
    }
}

Credits

License

The MIT License