在CodeIgniter中缓存货币换算率的最佳方法

时间:2011-06-13 21:21:53

标签: php codeigniter

我的购物应用需要进行货币转换,我的计划是使用crontab每小时获取一次最新汇率。我的问题是在我的CI应用程序中存储和使用它的最佳方法。我是不是该: - 每次运行时将其写入数据库,然后从需要进行转换的DB evrytime中获取速率 - 使用文本文件执行相同操作 - 将它写入index.php中的常量 - 某种核心或钩子文件

什么是最有效的方式

2 个答案:

答案 0 :(得分:2)

快速&脏的方式是用这些货币写一个PHP文件。您可以使用var_export()安全地保存它们。

配置:

$file = '/path/to/currencies.php';

的cronjob:

// get data from API (note: you should use proper functions via CURL)
$currencies = file_get_contents('http://some.api.com/currencies');
// decode data
$currencies = json_decode( currencies );
// export data into PHP format
$currencies = var_export( currencies, true );
// save to file
file_put_contents($file, "<?php\r\n $currencies=".$currencies."; \r\n?>");

货币页面:

// ensure you get a default something
$currencies = array();
// load data file (note, we use include so we can load it whenever we want)
@include $file;
// output something from array
echo $currencies['EUR'];

请注意,我们甚至无法在任何地方连接到数据库,因此速度非常快。也没有解析/转换。使用DB概念,您必须至少遍历数据库行。使用普通的配置介质,例如ini,json或xml文件,在PHP加载后需要进行某种形式的解析。然而,使用这种方法,它是PHP加载过程的一部分;你只需要一个小的PHP文件。

答案 1 :(得分:0)

我认为最常见的方式(也很有效)是在数据库中有一个货币表。

  • 每种货币&amp; rate有自己的行。
  • 根据所选的区域设置,在每个页面请求中从数据库中获取相应的货币信息。
  • 将您的价格显示在执行货币换算的函数中(基本货币的简单乘法)。