新聞中心
PhpStorm 2020.3新增的PHP 8屬性?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
PhpStorm是一個輕量級且便捷的PHP IDE,其旨在提高用戶效率,可深刻理解用戶的編碼,提供智能代碼補全,快速導(dǎo)航以及即時錯誤檢查??呻S時幫助用戶對其編碼進行調(diào)整,運行單元測試或者提供可視化debug功能。
下載PHPSTORM 2020.2最新試用
PhpStorm 2020.3將附帶幾個開箱即用的PHP 8屬性:
#[ArrayShape],#[ExpectedValues],#[NoReturn],#[Pure],#[Deprecated],#[Immutable]。繼續(xù)閱讀以了解有關(guān)屬性的更多信息。
你可能已經(jīng)聽說過 PHP 8 中的屬性,但也許你不知道的是它們將是取代 PHPDoc 的結(jié)構(gòu)化元數(shù)據(jù)的新格式,現(xiàn)在將成為該語言的一部分。
PHP 8 中的屬性是什么?
除了調(diào)用 ReflectionAttribute::newInstance()時的語法定義和驗證之外,PHP 8 沒有提供任何開箱即用的屬性。對于你定義的屬性,你必須自己實現(xiàn)它們的行為。
在 PhpStorm 2020.3 中會有哪些屬性?
在PhpStorm 2020.3中,一些屬性將在\JetBrains\PhpStorm\命名空間下可用。#[ExpectedValues]和#[NoReturn]是.phpstorm.meta.php函數(shù)的高級后裔。而#[ArrayShape]是PHPDoc的數(shù)組描述的一個備受期待的進化。此外,還會有#[Deprecated]、#[Pure]和#[Immutable]。
以下屬性的設(shè)計仍在進行中,非常歡迎你的反饋。
#[Deprecated]
這個屬性類似于@deprecated PHPDoc標簽,用于標記方法、函數(shù)、類或類常量,它表示這些方法、函數(shù)、類或類常量在未來的版本中會被刪除,因為它們已經(jīng)過時了。
這個新屬性的主要優(yōu)點是,你可以指定替換函數(shù)和方法。這將幫助被廢棄功能的用戶進行遷移。
如果為屬性指定了reason參數(shù),那么它將在檢查工具提示中顯示給用戶。
#[Deprecated(reason: '', replacement: '')]
讓我們看一個真實的例子。
在Symfony 5.2中,/Symfony/Component/DependencyInjection/Alias::setPrivate()將被廢棄。有了#[Deprecated]屬性,我們可以更容易地進行遷移。
#[Deprecated( reason: 'since Symfony 5.2, use setPublic() instead', replacement: '%class%->setPublic(!%parameter0%)' )]
本文題目:PhpStorm2020.3新增的PHP8屬性-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.dlmjj.cn/article/ppcch.html