【发布时间】:2019-01-23 10:13:59
【问题描述】:
TL;DR
- 我们是否可以配置 PHP,使其在类型提示导致参数类型错误时不会导致致命错误,而是导致警告?
- PhpStorm / GIT 是否有插件/扩展可以防止保存或推送包含未解决问题的代码(最好仅针对类型提示问题进行过滤)。
对于我正在处理的一个代码库有点古怪的项目,我们正在尝试在我们可以的地方合并类型提示。 我们决定这样做是为了使代码库更易于阅读和维护。
我来自 C# 背景,所以很明显编译器让我变得懒惰,因为它基本上会告诉我何时尝试传递不正确类型的值。在PHP中,我们必须依靠IDE告诉我们,但由于没有编译,它确实不妨碍我们实现会导致运行时致命错误的代码路径。
由于我们都想继续使用这些类型提示,并且不让它在运行时导致致命错误,我们想知道是否可以将 PHP 配置为抛出 WARNING 而不是 FATAL当类型提示失败时。这将允许代码继续运行,并仍然通知我们需要解决此问题的事实。
我知道类型提示在设计上应该会导致致命,但是我们正在尝试暂时解决这个问题
对我们也有用(并且可能是理想的)是某种插件,它以某种方式阻止我们保存/推送具有此类未解决问题的代码。我们正在使用 PhpStorm 和 GIT 进行版本控制。
【问题讨论】:
-
您是否考虑过添加自动化单元测试以在开发过程中捕获这些致命错误?
-
@EriksKlotins 实际上很多,但是我正在处理的代码库非常大,不幸的是,开始添加测试并不是一件小事。要是这样就好了。
-
感觉就像你真的想设置一个static analysis tool 并且 PhpStorm 有一个内置的“严格类型检查规则违规”检查也应该警告你。我想关键是自动化它,对吗?
-
@ÁlvaroGonzález 我想我们已经在使用它了(我对 PHP 还不太熟悉,所以我可能错了)。问题是我想要一个工具来防止代码与主分支合并(并且严格的类型检查只会发出警告)。我不在乎它在哪个阶段被阻止,在 PhpStorm 的某个地方或 Git 客户端对我来说似乎是合乎逻辑的。