syntro/silverstripe-phpstan

PHPStan for Silverstripe

5.0.0 2023-06-28 12:55 UTC

This package is auto-updated.

Last update: 2024-08-28 16:20:29 UTC


README

一个允许PHPStan与Silverstripe一起工作的模块。

🎭 Tests codecov Dependabot phpstan composer Packagist Version

功能

  • 支持 DataObject::get(),即它理解你有一个可迭代的SiteTree记录的DataList。
  • 支持DataObject的dbhas_onehas_manymany_many魔术属性和方法,即它知道SiteTree::Title是字符串,SiteTree::ParentID是整数,SiteTree::Parent()是SiteTree记录。
  • 支持singleton('SiteTree')Injector::inst()->get('SiteTree'),即它知道这些将返回"SiteTree"。如果你使用注入器覆盖这些,它也会知道你实际使用的类。
  • 支持配置属性

此PHPStan模块能够在启动SilverStripe配置系统时推理出针对你的项目安装的特定扩展。因此,如果你为Page对象添加了一个添加额外db字段的扩展,PHPStan将能够对此进行推理。

Composer安装

SilverStripe 5.X

composer require --dev syntro/silverstripe-phpstan ^5

对于Silverstripe 4,请参阅相应的分支

要求

  • SilverStripe 5.0+

文档

已知限制/注意事项

  • PHPStan会检查属性是否实际初始化、读取和写入。然而,这并不适用于Silverstripes的配置属性。为了告诉PHPStan你的哪些属性是配置值,你必须使用@config文档注释
  • 对于扩展,无法推理出owner属性的类型。你必须使用getOwner()。相关问题:#1043#1044

致谢

这是由Symbiote和贡献者维护的原始symbiote/silverstripe-phpstan的一个分支。我们创建了它,因为原始存储库似乎不再积极维护。