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.
![]() |
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
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. |
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();
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);
![]() |
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. |
![[Note]](images/note.png)