algolia/phpstan-magento

PHPStan Magento 扩展

安装: 24

依赖者: 0

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 25

类型:phpstan-extension

dev-master 2020-04-07 15:16 UTC

This package is auto-updated.

Last update: 2024-09-08 01:07:23 UTC


README

本包为 PHPStan 提供了一些额外的功能,以便使其适用于 Magento 2 项目。

安装

安装 bitexpert/phpstan-magento 的首选方法是使用 Composer。您可以将其作为开发依赖项添加,如下所示

composer.phar require --dev bitexpert/phpstan-magento

将 extension.neon 包含在您的项目 PHPStan 配置中

includes:
	- vendor/bitexpert/phpstan-magento/extension.neon

功能

  1. 此扩展添加了一个类似于 Magento 的生成器,用于生成工厂和代理类。当在 Magento 应用程序的上下文中运行 PHPStan 时,如果您还指向生成的文件文件夹,则不需要此功能。当在模块的上下文中运行 Magento 时,这是必需的,以便 PHPStan 可以获得所有所需类的完整视图。
  2. 此扩展添加了一个用于“模拟”类的自动加载器。这些是替换 Magento 特定实现的类,用于修复类型提示或接口中的缺失方法等问题。自动加载器将检查扩展中是否存在类、接口或特性。如果存在,它将加载本地版本而不是 Magento 提供的版本。一旦这些问题在 Magento 中得到修复,这些模拟可以再次删除。
  3. 添加了一个类型扩展,以便 ObjectManager 调用返回正确的返回类型。
  4. 对于一些类,如 DataObjectSessionManager,添加了逻辑以支持魔法方法调用。

已知问题

以下是在使用此扩展时出现的已知问题的列表

PHPStan shim 不会生成工厂、代理等。

这是因为 PHPStan shim 被包含在一个 Phar 存档中,因此不支持覆盖其命名空间中的某些方法。目前已知的问题是手动加载此扩展附带的自定义加载器。

在您的项目中创建一个文件(例如 phpstan.php),内容如下

<?php
\bitExpert\PHPStan\Magento\Autoload\Autoloader::register();

将此包含在 phpstan.neonautoload_files 部分中

parameters:
    autoload_files:
        - phpstan.php

贡献

请随意分支并扩展现有功能或添加新功能,并发送带有您更改的拉取请求!为了建立一致的代码质量,请为所有更改提供单元测试,并修改文档。

想要贡献?

如果您觉得有东西可以分享,那么我们非常愿意接受您的贡献。查看 贡献指南 了解如何操作,以及我们对您的期望。

许可

PHPStan Magento Extension 在 MIT 许可下发布。