Download the PHP package ob-ivan/sd-currency without Composer
On this page you can find all versions of the php package ob-ivan/sd-currency. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package sd-currency
A collection of utility functions to enumerate available currencies and update their actual exchange rates.
Installation
Usage
Registry
A currency instance associates currency code with its representations in Unicode and as an HTML entity.
These currencies are supported:
- RUB
- EUR
- USD
You can enumerate available currencies using a registry instance:
Or if you use dependency injection (see below):
Formatter
Use formatter service to format price according to given currency. Formatter instance uses a number of configuration parameters.
Repository & Store
All functions are available within repository instance which acts as a library facade:
Some of its methods require a store class to be configured:
The store is used to retrieve currency rates and to persist them when updated (see Updater secion).
Two store implementations are provided by this library:
FileStore
uses a json file on hard drive.ArrayStore
only keeps data in memory and is well suited for unit testing.
You can also implement SD\Currency\Store\StoreInterface
to provide your own kind of store,
e.g. in database or memcache. Then pass its class name to Repository
constructor as shown above.
Updater
An updater service runs against the provided store and sets up exchange rates from the fixed source. The official API of Central Bank of Russia is used by default. You can configure the updater with your own XML source and XPath, as well as update interval (defaults to '1 day') if you don't want to make too much requests to your source.
Or in case you use dependency injection:
Dependency Injection
If you use SD\DependencyInjection\Container
in your application,
consumers may import dependency injection trait to take advantage of the autodeclare feature:
Configuration
When using dependency injection you may provide a configuration file to set up your services:
Use ConfigLoader
to populate a container with config values:
This will inject config values into corresponding services:
Development
To run tests: