允许设置 MoneyType 的精度策略
Contributed by
syastrebov
in #26767.
在 Symfony 4.1 中,MoneyType 表单字段定义了一个新的名为 rounding_mode
的选项,来控制数值的四舍五入。之前,所有的值都会根据 "the nearest neighbor(最近邻居)" (ROUND_HALF_UP
) 来入,因此 15.999
就被入到 16.00
。现在你可以设置 ROUND_DOWN
来把它显示成 15.99
:
1 2 3 4 5 6 7 | 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,
)); |
更高效地添加和删除 LDAP 属性
Contributed by
Jean-Guilhem Rouel
in #21856.
使用 update()
来更新 LDAP 入口,在很多场景下很慢。这就是为何在 Symfony 4.1 中有两个名为 addAttributeValues()
和 removeAttributeValues()
的方法来对 multi-valued attribute(多值属性)进行值的添加和删除:
1 2 3 4 5 6 7 8 9 | 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']); |
重定向后保持 query string
Contributed by
Hamza Amrouche
in #26281.
在 Symfony 4.1 中,路由( YAML, XML 或 PHP) 可以定义一个全新的名为 keepQueryParams
的选项。默认是它的值是 false
,但如果被设为 true
,query parameters (如果有) 将被添加到重定向的 URL 中去:
1 2 3 4 5 6 7 | legacy_search:
path: /search-engine
controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::redirectAction
defaults:
route: search
permanent: true
keepQueryParams: true |
本例中,如果原始链接是 /search-engine?q=symfony
,程序将重定向到 /search?q=symfony
在 PropertyInfo 中添加了对 hasser accessors 的支持
PropertyInfo组件 通过使用不同类型的元数据,可以感知类中的属性。在 Symfony 4.1 中,组件中的一个资源 (也就是 ReflectionExtractor
类) 添加了对 hasser 方法的支持。
这就允许,比如,通过定义类似 hasChildren()
这种方法而不是 getChildren()
,来让某个属性可读。