silbinarywolf/silverstripe-phpstan

该包已被弃用,不再维护。作者建议使用 symbiote/silverstripe-phpstan 包。

PHPStan for Silverstripe

3.0.2 2019-01-07 22:19 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:08:10 UTC


README

Build Status Latest Stable Version Latest Unstable Version Total Downloads License

PHPStan 的一个扩展,允许其推理 SilverStripe 功能。

功能

  • 支持 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 3.X

composer require --dev symbiote/silverstripe-phpstan:1.0.0 phpstan/phpstan-shim:0.9.2

SilverStripe 4.X

composer require --dev symbiote/silverstripe-phpstan:2.0.0 phpstan/phpstan-shim:0.9.2

注意:我们建议安装 phpstan-shim,因为目前在 SilverStripe 3.X 中,QueuedJobs 模块对 superclosure 的依赖强制 PHPStan 的 PHP-Parser 依赖处于非常过时的版本。

要求

  • SilverStripe 3.1+

文档

已知限制

  • 对于扩展,无法推理 owner 属性的类型。您必须使用 getOwner()。相关问题:[#1043](https://github.com/phpstan/phpstan/issues/1043) 和 [#1044](https://github.com/phpstan/phpstan/issues/1044)

致谢