locaine / lcn-weather-forecast-bundle
将 Forecast.io 天气预报集成到您的 Symfony 2 项目中。具有 API 请求规范化和缓存功能。
v1.0.5
2015-03-12 15:53 UTC
This package is not auto-updated.
Last update: 2024-09-14 16:30:53 UTC
README
简单易用的 Forecast.io 天气预报 Symfony 2 集成。MIT 许可证。
安装
步骤 1: 下载包
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require locaine/lcn-weather-forecast-bundle "~1.0"
此命令需要您全局安装了 Composer,如 Composer 文档中的安装章节所述。
步骤 2: 启用包
然后,在项目的 app/AppKernel.php
文件中添加以下行以启用包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Lcn\WeatherForecastBundle\LcnWeatherForecastBundle(), ); // ... } // ... }
步骤 3: 设置 Forecast.io API 令牌
将您的免费 Forecast.io API 令牌 粘贴到 app/config/parameters.yml 中
parameters: ... lcn.weather_forecast_provider.forecast_io.api_token: YOUR_TOKEN ... ### Step 4: Adjust caching (optional) The default cache engine caches the api results in files within the %kernel.cache_dir% directory. You can, however, provide any Cache Provider implementing the [Doctrine Cache](https://github.com/doctrine/DoctrineCacheBundle) interface: In config.yml or services.yml: ```yaml services: ... lcn.weather_forecast.cache: class: Doctrine\Common\Cache\PhpFileCache arguments: [%kernel.cache_dir%] calls: - [setNamespace, ['lcn_weather_forecast']] ...
用法
示例控制器代码
$forecast = $this->container->get('lcn.weather_forecast'); $lat = 53.553521; $lng = 9.948773; $forecastForDay = $forecast->getForToday($lat, $lng); // OR: $forecastForDay = $forecast->getForDay($lat, $lng, strtotime('tomorrow')); echo $forecastForDay->getSummary(); echo $forecastForDay->getIcon(); foreach ($forecastForDay->getHours() as $hour => $forecastForHour) { echo $forecastForHour->getSummary(); echo $forecastForHour->getIcon(); $key = 'temperature'; // $key can be any key from forecast.io api, e.g. time, summary, icon, precipIntensity, precipIntensity, precipProbability, temperature, apparentTemperature, dewPoint, humidity, windSpeed, windBearing, visibility, cloudCover, pressure, ozone echo $forecastForHour->get($key, 'fallback default value'); } $forecastForHour = $forecast->getForCurrentHour($lat, $lng); // OR: $forecastForHour = $forecast->getForHour($lat, $lng, strtotime('+ 1 day 3 hours')); echo $forecastForHour->getSummary(); echo $forecastForHour->getIcon(); $key = 'temperature'; // $key can be any key from forecast.io api, e.g. time, summary, icon, precipIntensity, precipIntensity, precipProbability, temperature, apparentTemperature, dewPoint, humidity, windSpeed, windBearing, visibility, cloudCover, pressure, ozone echo $forecastForHour->get($key, 'fallback default value');