Diversas Melhorias no Symfony 4.1 (Parte 3)
Permitir definir a estratégia de arredondamento para o MoneyType
No Symfony 4.1, o campo de formulário MoneyType define uma nova opção chamada rounding_mode
para controlar como os valores são arredondados. Antes, todos os valores eram arredondados para o “vizinho mais próximo” (ROUND_HALF_UP
), de modo que 15,999
é arredondado como 16,00
. Agora, você pode configurá-lo por exemplo para ROUND_DOWN
para exibi-lo como 15,99
:
use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
// ...
$builder->add('price', MoneyType::class, array(
'rounding_mode' => NumberToLocalizedStringTransformer::ROUND_DOWN,
));
Adicionando e removendo atributos LDAP mais eficientemente
Atualizar entradas LDAP com o update()
é lento em alguns cenários. É por isso que no Symfony 4.1 existem dois novos métodos chamados addAttributeValues()
e removeAttributeValues()
que adicionam/removem valores a um atributo de múltiplos valores:
use Symfony\Component\Ldap\Ldap;
use Symfony\Component\Ldap\Entry;
// ...
$entry = $ldap->query('...', '...')->execute()[0];
$entityManager = $ldap->getEntryManager();
$entityManager->addAttributeValues($entry, 'telephoneNumber', ['+1.111.222.3333', '+1.222.333.4444']);
$entityManager->removeAttributeValues($entry, 'telephoneNumber', ['+1.111.222.3333', '+1.222.333.4444']);
Manter a query string após redirecionar
No Symfony 4.1, as rotas podem definir (em YAML, XML ou PHP) uma nova opção chamada keepQueryParams
. Por padrão, ela é definida como false
, mas se você defini-la como true
, os parâmetros da query string (se houver) serão adicionados a URL redirecionada:
legacy_search:
path: /search-engine
controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::redirectAction
defaults:
route: search
permanent: true
keepQueryParams: true
Nesse exemplo, se a URL original é /search-engine?q=symfony
, a aplicação redireciona para /search?q=symfony
Adicionado suporte para hasser accessors no PropertyInfo
O componente PropertyInfo faz uma introspecção de informações sobre as propriedades da classe usando diferentes fontes de metadados. No Symfony 4.1, uma dessas fontes (a classe ReflectionExtractor
) adicionou suporte para métodos hasser.
Isso permitirá, por exemplo, tornar uma propriedade legível definindo métodos como hasChildren()
em vez de apenas getChildren()
.
Tradução de: New in Symfony 4.1: Misc. improvements (part 3)