survos / geoapify-bundle
Symfony bundle to interact with https://www.geoapify.com/
Fund package maintenance!
kbond
Installs: 371
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Language:HTML
Type:symfony-bundle
Requires
- php: ^8.3
- symfony/config: ^6.4 || ^7.1
- symfony/dependency-injection: ^6.4 || ^7.1
- symfony/http-client-contracts: ^3.5
- symfony/http-kernel: ^6.4 || ^7.1
- twig/twig: ^3.4
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.4
- symfony/browser-kit: ^6.4 || ^7.1
- symfony/cache-contracts: ^3.4
- symfony/framework-bundle: ^6.4 || ^7.1
- symfony/phpunit-bridge: ^6.4 || ^7.1
- symfony/twig-bundle: ^6.4 || ^7.1
- symfony/var-dumper: ^6.4 || ^7.1
Suggests
- symfony/cache-contracts: Cache the lookups
- dev-main
- 1.5.442
- 1.5.441
- 1.5.440
- 1.5.439
- 1.5.438
- 1.5.437
- 1.5.436
- 1.5.435
- 1.5.434
- 1.5.433
- 1.5.432
- 1.5.431
- 1.5.430
- 1.5.429
- 1.5.428
- 1.5.427
- 1.5.426
- 1.5.425
- 1.5.424
- 1.5.423
- 1.5.422
- 1.5.421
- 1.5.420
- 1.5.419
- 1.5.418
- 1.5.417
- 1.5.416
- 1.5.415
- 1.5.414
- 1.5.413
- 1.5.412
- 1.5.411
- 1.5.410
- 1.5.409
- 1.5.408
- 1.5.407
- 1.5.406
- 1.5.405
- 1.5.404
- 1.5.403
- 1.5.402
- 1.5.401
- 1.5.400
- 1.5.399
- 1.5.398
- 1.5.397
- 1.5.396
- 1.5.395
- 1.5.394
- 1.5.393
- 1.5.392
- 1.5.391
- 1.5.390
- 1.5.389
- 1.5.388
- 1.5.387
- 1.5.386
- 1.5.385
- 1.5.384
- 1.5.383
- 1.5.382
- 1.5.381
- 1.5.380
- 1.5.379
- 1.5.378
- 1.5.377
- 1.5.376
- 1.5.375
- 1.5.374
- 1.5.373
- 1.5.372
- 1.5.371
- 1.5.370
- 1.5.369
- 1.5.368
- 1.5.367
- 1.5.366
- 1.5.365
- 1.5.364
- 1.5.363
- 1.5.362
- 1.5.361
- 1.5.360
- 1.5.359
- 1.5.358
- 1.5.357
- 1.5.356
- 1.5.355
- 1.5.354
- 1.5.353
- 1.5.352
- 1.5.351
- 1.5.350
- 1.5.349
- 1.5.345
- 1.5.344
- 1.5.343
- 1.5.342
- 1.5.341
- 1.5.340
- 1.5.339
- 1.5.338
- 1.5.337
- 1.5.336
- 1.5.335
- 1.5.334
- 1.5.333
- 1.5.332
- 1.5.331
- 1.5.330
- 1.5.329
- 1.5.328
- 1.5.327
- 1.5.326
- 1.5.325
- 1.5.324
- 1.5.323
- 1.5.322
- 1.5.321
- 1.5.320
- 1.5.319
- 1.5.318
- 1.5.317
- 1.5.316
- 1.5.315
- 1.5.314
- 1.5.313
- 1.5.312
- 1.5.311
- 1.5.310
- 1.5.309
- 1.5.308
- 1.5.307
- 1.5.306
- 1.5.305
- 1.5.304
- 1.5.303
- 1.5.302
- 1.5.301
- 1.5.300
- 1.5.299
- 1.5.298
- 1.5.297
- 1.5.296
- 1.5.295
- 1.5.294
- 1.5.293
- 1.5.292
- 1.5.291
- 1.5.290
- 1.5.289
- 1.5.288
- 1.5.287
- 1.5.286
- 1.5.285
- 1.5.284
- 1.5.283
- 1.5.282
- 1.5.281
- 1.5.280
- 1.5.279
- 1.5.278
- 1.5.277
- 1.5.276
- 1.5.275
- 1.5.274
- 1.5.273
- 1.5.272
- 1.5.271
- 1.5.270
- 1.5.269
- 1.5.268
- 1.5.267
- 1.5.266
- 1.5.265
- 1.5.264
- 1.5.263
- 1.5.262
- 1.5.261
- 1.5.260
- 1.5.259
- 1.5.258
- 1.5.257
- 1.5.256
- 1.5.255
- 1.5.254
- 1.5.253
- 1.5.252
- 1.5.251
This package is auto-updated.
Last update: 2024-12-15 17:32:14 UTC
README
Symfony Bundle to access the API at https://www.geoapify.com/
The geoapify website offers 3000 free lookups per day, and it's very fast and easy to register for an API key. The main purpose of this bundle is to simplify storing the API key in an environment variable and to cache the responses.
First, get an API key at https://myprojects.geoapify.com/projects and add it to .env.local
echo "GEOAPIFY_API_KEY=my-api-key" >> .env.local composer req survos/geoapify-bundle bin/console debug:config survos_geoapify --format=yaml > config/packages/survos_geoapify.yaml
# config/packages/survos_geoapify.yaml survos_geoapify: api_key: '%env(GEOAPIFY_API_KEY)%'
Trivial but functional application
Requirements:
- Locally installed PHP 8
- Symfony CLI
- sed (to change /app to / without opening an editor)
- API Key
symfony new GeoapifyDemo --webapp && cd GeoapifyDemo echo "GEOAPIFY_API_KEY=my-api-key" >> .env.local symfony composer req survos/geoapify-bundle symfony console make:controller AppController sed -i "s|/app|/|" src/Controller/AppController.php cat <<'EOF' > templates/app/index.html.twig {% extends 'base.html.twig' %} {% block body %} {% set ip = app.request.clientIp %} {{ isLocalhost(ip) ? "<div>Localhost has no geolocation, using value from config</div>" }} Hello, visitor from {{ ipGeolocation(ip).country_name}} ) <pre>{{ ipGeolocation(ip)|json_encode(constant('JSON_PRETTY_PRINT')) }}</pre> Powered by Geoapify.io <a href="https://www.geoapify.io">IP geolocation</a> web service. {% endblock %} EOF symfony server:start -d symfony open:local
Notes
https://freeipapi.com/ is a free service that can be used without an API key (up to 60 requests per minute).