首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP有没有工具来减少类和构造函数中重复的参数声明和初始化?

PHP有没有工具来减少类和构造函数中重复的参数声明和初始化?
EN

Stack Overflow用户
提问于 2018-08-29 03:40:10
回答 2查看 53关注 0票数 2

考虑编写下面的类:

代码语言:javascript
复制
class SomeClass
{

    /** @var array */
    private $files;

    /** @var string */
    private $productName;

    /** @var bool */
    private $singlePage;

    /** @var bool */
    private $signatureRequested;

    function __construct(array $files, string $productName, bool $singlePage, bool $signatureRequested = true)
    {
        $this->files = $files;
        $this->productName = $productName;
        $this->singlePage = $singlePage;
        $this->signatureRequested = $signatureRequested;
    }
}

$files,其他参数列出4次-您必须键入参数名称,然后将其复制粘贴,或在上面的锅炉模板代码中输入3次。有没有办法减少键入所有这些代码所需的工作量?

在我看来,理想情况下,我想要一些东西,我可以在构造函数中指定需要初始化的参数,只需一次,然后一些机制就会继续并填充剩余的样板代码。

有这样的机制/代码构造吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-03 21:47:02

尽管写这个问题时的答案是“否”,但现在答案是“是”:PHP8.0中添加Constructor Property Promotion就是为了这个目的。

它的工作方式是在构造函数签名中列出属性可见性,并同时声明属性和参数。

因此,您的整个示例将简化为:

代码语言:javascript
复制
class SomeClass
{
    function __construct(
        private array $files,
        private string $productName,
        private bool $singlePage,
        private bool $signatureRequested = true
    ) { }
}
票数 3
EN

Stack Overflow用户

发布于 2018-08-29 03:48:11

如果您使用的是PHPStorm,可以查看以下内容:

PhpStorm shortcut to generate constructor params functionality

我可以通过几个简单的快捷方式生成所有这些内容。我相信其他IDE也有同样的特性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52065147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档