silbinarywolf / silverstripe-phpstan
3.0.2
2019-01-07 22:19 UTC
Requires
- php: ~7.0
- silverstripe/framework: ~4.0
- silverstripe/vendor-plugin: ^1.0
Requires (Dev)
- phpstan/phpstan: ~0.9.0
- phpstan/phpstan-phpunit: ~0.9.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- phpstan/phpstan-shim: ~0.9.0
Replaces
README
PHPStan 的一个扩展,允许其推理 SilverStripe 功能。
功能
- 支持
DataObject::get()
,即它理解您有一个可迭代的 SiteTree 记录 DataList。 - 支持 DataObject 的
db
、has_one
、has_many
和many_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)
致谢
- Ondřej Mirtes 为其在 PHPStan 库上的出色工作
- Grant Lucas 为将此库升级到 PHPStan 0.9 的贡献