survos/geoapify-bundle

Symfony 扩展包,用于与 https://www.geoapify.com/ 交互

资助包维护!
kbond

安装: 216

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle


README

Symfony 扩展包,用于访问 https://www.geoapify.com/ 的 API

geoapify 网站提供每天 3000 次免费查询,注册 API 密钥非常快且简单。本扩展包的主要目的是简化将 API 密钥存储在环境变量中,并缓存响应。

首先,在 https://myprojects.geoapify.com/projects 获取 API 密钥,并将其添加到 .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)%'

简单但功能齐全的应用程序

要求

  • 本地安装的 PHP 8
  • Symfony CLI
  • sed(用于更改 /app 到 / 而不打开编辑器)
  • API 密钥
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