Лучший способ кешировать курсы валют в CodeIgniter - PullRequest
1 голос
/ 14 июня 2011

Мое приложение для совершения покупок должно конвертировать валюту. Я планирую использовать crontab, чтобы получать последние курсы обмена раз в час.Мой вопрос - как лучше всего хранить и использовать это в моем приложении CI?Должен ли я: - записывать его в БД каждый раз, когда он запускается, а затем извлекать скорость из БД каждый раз, когда мне нужно сделать преобразование - сделать то же самое, но с текстовым файлом - записать его в константу в index.php - что-то вродефайла core или hook

Какой самый эффективный способ

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Быстрый и грязный способ - написать файл PHP с указанными валютами. Вы можете использовать var_export() для безопасного их сохранения.

Config:

$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'];

Обратите внимание, что мы нигде не подключаемся к БД, что делает это очень быстро. Также нет разбора / преобразования. С концепцией БД вы должны по крайней мере зацикливаться на строках базы данных. Использование обычной среды конфигурации, такой как файлы ini, json или xml, потребовало бы некоторого вида анализа после загрузки PHP. Принимая во внимание, что этот метод является частью процесса загрузки PHP; вы просто включаете небольшой файл PHP.

0 голосов
/ 14 июня 2011

Я думаю, что наиболее распространенный способ (который также эффективен) - это иметь таблицу валют в базе данных.

  • У каждой валюты и курса есть свой ряд.
  • На основе выбранного языкового стандарта извлекайте информацию о соответствующей валюте из базы данных при каждом запросе страницы.
  • Оберните ваши цены в функцию, которая выполняет конвертацию валюты (простое умножение базовой валюты).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...