Skip to content

v1.7.3

tagged this 12 Aug 22:32
v1.7.2 appended the `(?)` optional marker to two excludePaths entries. Measured
against the real apps, that made PHPStan 2.x WORSE: NEON reads `… (?)` after a
`%…%` expansion as an ENTITY, so 2.x died with

  FileExcluder::isAbsolutePath(): Argument #1 ($path) must be of type string,
  Nette\DI\Definitions\Statement given

Quoting the whole value fixes 2.x but breaks 1.x, which then does NOT strip the
marker and resolves the literal "/app/vendor-bin (?)" — a path matching nothing.
Harmless where the directory is absent, and silently breaking where it exists:
openbuild ships 31 files under lib/Resources/template.

So a conditional path has no spelling that is safe on both majors, and it leaves
the base. `vendor` is the only entry that always exists. The other two move to
the apps that actually have the directory:

  vendor-bin              openregister only
  lib/Resources/template  portaliq, openbuild, hermiq

Verified on zaakafhandelapp (PHPStan 2.2.8, the fleet's only 2.x app) with its
temporary override removed: 57 files analysed, no errors. The `[OK] No errors`
line was not taken as proof — a zero-file run prints the same thing, which was
the original defect.
Assets 2
Loading