Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.39 KB

File metadata and controls

49 lines (38 loc) · 1.39 KB

Registering Your Own Providers

<< Back to documentation index

If you want to use your own provider in your application, create a service, and tag it as bazinga_geocoder.provider:

<service id="acme_demo.geocoder.my_provider" class="Acme\Demo\Geocoder\Provider\MyProvider">
    <argument type="service" id="foo_service" />
    <tag name="bazinga_geocoder.provider" />
</service>

The bundle will automatically register your provider into theGeocoder\ProviderAggregator service. However, it will not show up the web profiler because it is not registered with the PluginProvider.

If you want your provider to show up the web profiler you have to create a custom factory for your provider.

namespace Acme\Demo\Geocoder\Factory;

use Bazinga\GeocoderBundle\ProviderFactory\AbstractFactory;
use Acme\Demo\Geocoder\Provider\MyProvider;
use Acme\Demo\Service\Foo;

final class MyFactory extends AbstractFactory
{
    private $fooService;

    public function __construct(Foo $service)
    {
        $this->someService = $service;
    }

    protected function getProvider(array $config)
    {
        return new MyProvider($this->fooService);
    }
}
# config/packages/bazinga_geocoder.yaml
bazinga_geocoder:
    providers:
        acme:
            factory: Acme\Demo\Geocoder\Factory\MyFactory
            aliases: ['acme_demo.geocoder.my_provider']