问题标签 [psalm-php]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使 psalm 输出适应 Neomake
我正在尝试提出正确的错误格式以传递给 Neomake,以处理来自 psalm ( https://github.com/vimeo/psalm ) 的输出。
示例输出:
(双条仅在:lopen
列表中可见,在控制台中不可见。不知道为什么。)
我试过的错误格式:
不知道我错过了什么。感谢任何提示或链接或其他任何东西。
php - 如何使用 Psalm 的 UnusedMethod 功能?
我正在尝试使用PHP 的 psalm 静态分析工具。据我了解,这个工具可以告诉我代码库中未使用的方法。但是,如果我创建一个简单的测试文件
然后运行psalm
或psalter
,
没有发现错误。
为什么 psalm 没有找到未使用的方法foo
?是否需要额外的配置?还是我误解了这个工具的作用?我的psalm.xml
文件在下面。
psalm-php - 如何解决这个 TypeDoesNotContainType 错误?
这是我的代码:
这是诗篇错误:
..但是php手册说ssh2_sftp
可以返回false:
此方法返回一个 SSH2 SFTP 资源,用于与所有其他 ssh2_sftp_*() 方法和 ssh2.sftp:// fopen 包装器一起使用,失败时返回 FALSE。
我在这里错过了什么,或者我不明白什么?
php - 如何键入遍历混合数组的循环
鉴于此代码(https://psalm.dev/r/156e52eb66):
keys
假设函数不受我们控制(在不同的项目中)并且它有效地返回mixed
( ) 的数组,它会如何键入它array<array-key, mixed>
。
所以,一个人可能只会改变循环并围绕它。
甚至可能吗?
php - 诗篇:返回多种类型的句柄方法
编辑这是 Psalm 的事情,而不是 PHP MD 的事情。
我正在编写一个 Symfony 控制台命令。在其execute
方法中,我使用该方法检索参数$input->getArgument('argument_name')
。我将这个值传递给一个服务,它期望这个值是字符串类型的。
整体代码:
PHP MD Psalm 没有看到我已经确认这$identifier
是一个字符串,然后将它作为参数传递给其中一个vehicleService
方法并抛出PossiblyInvalidArgument
错误,因为Argument 1 ... expects string, possibly different type array<array-key, string>|null|string provided
.
如何确保 PHP MD 这是一个字符串?
php - 如何创建数组的交集类型
我要实现的简化如下:
https://psalm.dev/r/d08f3ea0d1
简而言之:我正在尝试键入一个函数,该函数接受一个数组,该数组是 2 other 的交集@psalm-types
。也就是说:一个数组具有两种数组类型的字段(它们是唯一的并且保证是不同的)。
此代码符合预期 - 不进行类型检查:
真的没有办法,只能坚持运行时断言/检查吗?
重要提示:这个问题完全是关于静态类型的,我知道你可以在运行时检查它。
php - TwigFilter 可调用参数的诗篇错误
我从 psalm 得到这个错误,用于树枝扩展:
错误:InvalidArgument - src/Twig/CartExtension.php:44:17 - Twig\TwigFilter::__construct 的参数 2 需要 callable|null,array{App\Twig\CartExtension&static, string(getOfferDate)} 提供
有问题的代码是:
TwigFilter 签名是
树枝文档推荐这种格式
[$this, 'getOfferDate']
对于可调用的:https ://symfony.com/doc/current/templating/twig_extension.html
我怎样才能修复这个 psalm 错误或告诉 psalm 接受它?
php - 诗篇是否支持“这个”的@param-out?
@param-out
是否可以使用forthis
或来操作 Psalm 中的幻像类型self
?例子:
一个用例可能是一个文件类,其幻像类型设置为Open
or Closed
,并调用$file->open();
更改T
为Open
.
php - 如何让 Psalm 在 PHP 中推断出 100% 的代码库
目前正在运行的诗篇给了我:
Psalm 能够推断出 94.8665% 的代码库的类型
如何在无法推断类型的地方进行调试?我想要 100% 的类型覆盖率。
这是我的psalm.xml.dist
配置:
谢谢您的支持。
php - 在 .phtml 文件中使用 psalm
我正在尝试使 psalm 对.phtml
文件起作用。一切都很顺利,除了一件事。所有类(应该自动加载)都是未定义的。在普通的 php 类中,它们由 psalm 加载。
以下UndefinedDocblockClass
给出CustomBlocks
.
虽然添加OneRandomClass
它不再给出该错误。
更新; 第二个示例没有给出该错误,因为 docblock 与以下类相关联并且 @var 在类 docblocks 中被忽略。