2020终极版PhpStorm:全面支持PHP8,静态分析器

PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。

这个主要版本包括对PHP 8,静态分析器PHPStan和Psalm,Xdebug 3,Tailwind CSS,通过Code With Me进行协作开发的全面支持。

PhpStorm 2020.3现已上市!

2020终极版PhpStorm:全面支持PHP8,静态分析器

下载PHPSTORM 2020.3

阅读有关所有新功能和重要更新以及大量GIF的详细信息!

  • PHP 8:支持所有语言功能,甚至开源的Custom Attributes。
  • PHPStan和Psalm可以直接在代码编辑器中或以批处理方式检测问题。
  • Xdebug 3具有简化的配置,以及调试器的改进,例如嵌入式监视和交互式提示。
  • HTTP客户端现在可以运行Guzzle请求并将请求复制为cURL。
  • 协作开发使您可以与他人共享您的项目,并实时一起进行。
  • 在编辑器中,您现在可以使用Mermaid.js渲染图和图表,更轻松地拆分选项卡,并即时预览文件而无需打开它们。
  • 各种各样的IDE增强功能:“无处不在的搜索”有了一些新的举措。IDE视觉主题与操作系统保持同步。将PhpStorm设置为打开文件的默认应用程序。
  • 现在支持Git stage作为变更列表的替代。
  • 数据库工具为MongoDB和新的数据提取器带来了对SQL的支持。
  • Tailwind CSS,为Tailwind类提供编码帮助。

PHP 8

PhpStorm 2020.3支持所有最新的语言更改。以下是可用的功能以及如何在IDE中使用它。

从状态栏设置语言级别

现在,状态栏始终显示项目的当前语言级别。从那里进行切换,以利用PHP 8的新功能。

2020终极版PhpStorm:全面支持PHP8,静态分析器

如果切换未激活,则意味着项目的composer.json中的语言版本受到限制,您应该在该文件中对其进行调整。

命名参数

在PHP 8中,可以通过指定参数名称来传递函数和方法参数。现在,调用已自行记录,并且可选参数已成为真正的可选参数,因为您可以忽略它们。

使用添加名称标识符快速修复将位置参数转换为命名参数:

2020终极版PhpStorm:全面支持PHP8,静态分析器

如果参数包含错字或没有匹配的参数,则PhpStorm会突出显示这些参数:

2020终极版PhpStorm:全面支持PHP8,静态分析器

如果传递的值与参数的默认值相同,则PhpStorm会将参数变灰,您可以通过快速修复将其安全删除:

2020终极版PhpStorm:全面支持PHP8,静态分析器

开发人员经常使用选项数组来传递一组参数。使用命名参数,这不是必需的,因为您可以指定所需的参数。另外,与数组元素不同,以这种方式传递的参数是类型安全的。

2020终极版PhpStorm:全面支持PHP8,静态分析器

属性

属性(又名注解)是一种新的结构化方式,用于在PHP中指定元数据。它们替换了PHPDoc注释。

要创建属性,请声明一个普通的类并#[Attribute]在其顶部添加一个标记。PhpStorm在此处提供了所有预期的功能,包括突出显示,代码完成,查找用法,重构等。

2020终极版PhpStorm:全面支持PHP8,静态分析器

PHP本身仅在调用时才验证属性ReflectionAttribute::newInstance()。在此之前,如果不通过反射访问,则将完全忽略属性,以避免必须加载类和创建对象。

使用PhpStorm,无需运行反射API即可查看属性是否有效。强制执行以下规则:

  • 指定的类实际上可以是一个属性。
  • 此属性仅适用于允许的目标:类,属性,方法,参数,函数或类常量。
  • 仅当具有Attribute::IS_REPEATABLE标志时,才重复此属性。

这是与Symfony一起使用的属性:

2020终极版PhpStorm:全面支持PHP8,静态分析器

PhpStorm中的自定义PHP 8属性

PhpStorm 2020.3中有几个可用的属性,它们位于\JetBrains\PhpStorm\名称空间下。

立即将它们添加到您的代码库中,以获得更好的代码完成和更多的检查。

#[ArrayShape]

当定义一个实类时,此属性对于使用简单的数据结构或类对象数组很有用。

语法如下:

#[ArrayShape([
// ‘key’ => ’type’,
   ‘key1’ => ‘int’,
   ‘key2’ => ‘string’,
   ‘key3’ => ‘Foo’,
   ‘key3’ => App\PHP 8\Foo::class,
])]
function functionName(...): array

type可以被指定为一个字符串或作为在FQN字符串或形式的类引用::class常量。

2020终极版PhpStorm:全面支持PHP8,静态分析器

这是定义形状的数组。将其提取为常量,然后在其适用的属性内重用:

const MY_ARRAY_SHAPE = [] ;

#[ ArrayShape (MY_ARRAY_SHAPE )]

2020终极版PhpStorm:全面支持PHP8,静态分析器

在PhpStorm中,我们已经注释了一些内部PHP函数,例如parse_url()with #[ArrayShape],因此您可以立即受益于这些属性。

幸运的是,单行属性的语法是向后兼容的。如果将#[ArrayShape]属性添加到PHP 7.*项目的单独一行中,则PHP解释器会将其解析为注释行。但是,多行属性对于8之前的PHP版本并不安全。

与PHP解释器不同,PhpStorm仍然会分析属性!因此,即使您的项目在PHP 7.4或更低版本上运行,您仍然可以从添加#[ArrayShape]属性中受益。

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/18144.html

发表评论

登录后才能评论