TigerZF
🌐Español

25.2. Uso de Zend_Currency

25.2.1. Uso genérico

El caso de uso más simple dentro de una aplicación es usar la configuración regional del cliente. Cuando crea una instancia de Zend_Currency sin proporcionar ninguna opción, se usará la configuración regional de su cliente para establecer la moneda adecuada.

Ejemplo 25.1. Creación de una moneda con la configuración del cliente

Supongamos que su cliente ha establecido "en_US" como idioma deseado en su navegador. En este caso, Zend_Currency detectará automáticamente la moneda que se debe usar.

$currency = new Zend_Currency();

// See the default settings which are depending on the client
// var_dump($currency);

El objeto creado ahora contendría la moneda "US Dollar", ya que esta es la moneda asignada actualmente para US (Estados Unidos). También tiene otras opciones establecidas, como "$" para el signo de la moneda o "USD" para la abreviatura.


[Note] La detección automática de la configuración regional no siempre funciona

Debe tener en cuenta que esta detección automática de la configuración regional no siempre funciona correctamente. La razón de este comportamiento es que Zend_Currency debe tener una configuración regional que incluya una región. Cuando el cliente solo establece "en" como configuración regional, Zend_Currency no sabría a cuál de los más de 30 países se refería. En este caso se lanzaría una excepción.

Un cliente también podría omitir la configuración regional en su navegador. Esto llevaría al problema de que se usará la configuración de su entorno como alternativa y también podría provocar una excepción.

25.2.2. Creación de una moneda basada en una configuración regional

Para evitar los problemas con su cliente, simplemente podría establecer manualmente la configuración regional deseada.

$currency = new Zend_Currency('en_US');

// You can also use the 'locale' option
// $currency = new Zend_Currency(array('locale' => 'en_US'));

// See the actual settings which are fixed to 'en_US'
// var_dump($currency);

Al igual que en nuestro primer ejemplo, la moneda usada será "US Dollar". Pero ahora ya no dependemos de la configuración del cliente.

Zend_Currency también soporta el uso de una configuración regional a nivel de aplicación. Puede establecer una instancia de Zend_Locale en el registro como se muestra a continuación. Con esta notación puede evitar establecer la configuración regional manualmente para cada instancia cuando quiera usar la misma configuración regional en toda la aplicación.

// in your bootstrap file
$locale = new Zend_Locale('de_AT');
Zend_Registry::set('Zend_Locale', $locale);

// somewhere in your application
$currency = new Zend_Currency();

25.2.3. Creación de una moneda basada en un país

Zend_Currency también es capaz de funcionar con un país dado usando internamente Zend_Locale.

$currency = new Zend_Currency('US');

// See the actual settings which are fixed to 'en_US'
// var_dump($currency);
[Note] Territorios en mayúsculas

Cuando sepa que está usando un territorio, debería escribirlo en mayúsculas. De lo contrario, podría obtener a sus ojos una configuración regional falsa a cambio. Por ejemplo, si proporciona "om" podría esperar que se devuelva "ar_OM". Pero en realidad devuelve "om", ya que también es un idioma.

Por lo tanto, siempre escriba en mayúsculas la entrada cuando sepa que se refiere a un territorio.