如何在Symfony中减少使用扩展类型?

tyg4sfes  于 2023-05-07  发布在  其他
关注(0)|答案(3)|浏览(107)

在我的控制器中,我使用了很多扩展类型:

use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;

因为这占用了太多的空间,而且对我来说不清楚,所以我需要知道是否有一行可以只使用所有行。就像这样:

use Symfony\Component\Form\Extension\Core\Type\AllTypes;
vq8itlhq

vq8itlhq1#

每个类都做一些特定的事情,因此无法避免使用它们。
但是,我确实喜欢下拉名称空间,以帮助清楚地说明它们是什么(尽管在这里不太必要,因为它们都是后缀)。它也确实减少了use语句中的大量内容。我确实发现它在我可能有几个具有相同类名的类,但在代码库的不同部分-可能是一个实体与某种相关服务的情况下非常有用。

<?php
use Symfony\Component\Form\Extension\Core\Type; 

->add('hiddenfieldname', Type\HiddenType::class, [...])
->add('password', Type\RepeatedType::class, ....
ulydmbyx

ulydmbyx2#

我明白你的问题。看到太多的useles代码。这很烦人,而且会使开发变慢(也不那么有趣:)。
您可以使用@Alister Bulman建议的部分名称空间,但这将禁用编码标准工具(如EasyCodingStandard)的自动化。
我想保持代码风格的自动化,所以我通过使用PHPStormIDE(在EAP versions中也是免费的)解决了这个问题。它很好地折叠了“use”语句:

ovfsdjhp

ovfsdjhp3#

因为阿利斯特·布尔曼是一个有效的解决方案
从PHP 7开始,可以像这样导入:

use Symfony\Component\Form\Extension\Core\Type\{HiddenType,RepeatedType}; 

->add('hiddenfieldname', HiddenType::class, [...])
->add('password', RepeatedType::class, ....

https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations

相关问题