orklah/psalm-strict-visibility
Composer 安装命令:
composer require orklah/psalm-strict-visibility
包简介
A Psalm plugin to detect calling private or protected method via proxy
README 文档
README
A Psalm plugin to detect calling private or protected method via proxy
Installation:
$ composer require --dev orklah/psalm-strict-visibility $ vendor/bin/psalm-plugin enable orklah/psalm-strict-visibility
Usage:
Run your usual Psalm command:
$ vendor/bin/psalm
Explanation:
Visibilities in PHP are not strongly enforced. According to php.net:
Objects of the same type will have access to each others private and protected members even though they are not the same instances. This is because the implementation specific details are already known when inside those objects.
This means that a private method is not actually private when called from another instance of the same object. This sort of behavior is possible:
class PrivateTests{ private string $secret; private function privateMethod(): void {echo $this->secret;} public function __construct(string $secret){ $this->secret = $secret; } public function proxyByParam(PrivateTests $a): void { $a->privateMethod(); //This is a call to a private method from outside the instance } } $first_secret_key = new PrivateTests('first_secret_key'); $second_secret_key = new PrivateTests('second_secret_key'); $first_secret_key->proxyByParam($second_secret_key);
This call to $first_secret_key instance will actually call a private method on $second_secret_key and display the value of the private attribute of $second_secret_key
This plugins intends to fill those holes in PHP visibility checks
orklah/psalm-strict-visibility 适用场景与选型建议
orklah/psalm-strict-visibility 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 104.35k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2020 年 03 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 orklah/psalm-strict-visibility 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 orklah/psalm-strict-visibility 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 104.35k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 21
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-03-08