/** * Realiza um sanitização de acordo com o locale, para permitir que valores * flutuantes ou números de precisão arbitrária utilizem a pontuação sem * localização. * * @see CoreExt_Validate_Abstract#_sanitize($value) */ protected function _sanitize($value) { $locale = CoreExt_Locale::getInstance(); $decimalPoint = $locale->getCultureInfo('decimal_point'); // Verifica se possui o ponto decimal do locale e substitui para o // padrão do locale en_US (ponto ".") if (FALSE !== strstr($value, $decimalPoint)) { $value = strtr($value, $decimalPoint, '.'); $value = floatval($value); } return parent::_sanitize($value); }
protected function setUp() { $this->_instance = CoreExt_Locale::getInstance(); $this->_instance->resetLocale(); }
/** * Getter. * @return CoreExt_Locale */ public function getLocale() { if (is_null($this->_locale)) { require_once 'CoreExt/Locale.php'; $this->setLocale(CoreExt_Locale::getInstance()); } return $this->_locale; }
/** * @group CoreExt_Locale */ public function testArredondamentoDeNotaComLocaleDiferenteDoPadrao() { $this->_entity->getDataMapper()->setTabelaValorDataMapper($this->_getMockTabelaValor()); $this->assertEquals(5, $this->_entity->round('5,005')); $locale = CoreExt_Locale::getInstance(); $locale->setLocale('pt_BR'); $this->assertEquals(8, $this->_entity->round('8,250')); }
* de ambiente configurada ou define 'production' como padrão. */ if (getenv('CORE_EXT_CONFIGURATION_ENV')) { define('CORE_EXT_CONFIGURATION_ENV', getenv('CORE_EXT_CONFIGURATION_ENV')); } else { define('CORE_EXT_CONFIGURATION_ENV', 'production'); } // Arquivo de configuração INI $configFile = realpath(dirname(__FILE__) . '/../') . '/configuration/ieducar.ini'; // Classe de configuração require_once 'CoreExt/Config.class.php'; require_once 'CoreExt/Config/Ini.class.php'; require_once 'CoreExt/Locale.php'; // Array global de objetos de classes do pacote CoreExt global $coreExt; $coreExt = array(); // Localização para pt_BR $locale = CoreExt_Locale::getInstance(); $locale->setCulture('pt_BR')->setLocale(); // Instancia objeto CoreExt_Configuration $coreExt['Config'] = new CoreExt_Config_Ini($configFile, CORE_EXT_CONFIGURATION_ENV); $coreExt['Locale'] = $locale; // Timezone date_default_timezone_set($coreExt['Config']->app->locale->timezone); /** * Altera o diretório da aplicação. chamadas a fopen() na aplicação não * verificam em que diretório está, assumindo sempre uma requisição a * intranet/. */ chdir($root . DS . 'intranet'); unset($root, $paths);
/** * @group CoreExt_Locale */ public function testValorNumericoSemConfigurarOValidadorUsandoLocaleComSeparadorPontoParaDecimal() { $locale = CoreExt_Locale::getInstance(); $locale->setCulture('en_US'); $this->assertTrue($this->_validator->isValid('0.0')); $this->assertTrue($this->_validator->isValid('1.5')); $this->assertTrue($this->_validator->isValid('-1.5')); }