/** * @inheritdoc */ public function getRate(CurrencyInterface $currencyFrom, CurrencyInterface $currencyTo, \DateTime $date = null) { if ($currencyFrom->equals($currencyTo)) { return 1; } $cacheKey = $currencyFrom->getCode() . $currencyTo->getCode(); if (array_key_exists($cacheKey, $this->cache)) { return $this->cache[$cacheKey]; } $rate = $this->currencyRateProvider->getRate($currencyFrom, $currencyTo, $date); if (!$rate) { throw new CurrencyRateNotFoundException(); } $this->cache[$cacheKey] = $rate; return $rate; }
/** * @param CurrencyInterface $currencyFrom * @param CurrencyInterface $currencyTo * @param \DateTime $date * @return mixed */ public function getRate(CurrencyInterface $currencyFrom, CurrencyInterface $currencyTo, \DateTime $date = null) { return $this->connection->fetchColumn('select rate from cms3_currency_rate where currency_from = ? and currency_to = ?', array($currencyFrom->getCode(), $currencyTo->getCode())); }