Release v1.1.0
Release v1.1.0 - Worker process-state rules and pcntl signal hardening
Changelog
Added
- Worker rules for process-wide state that survives FrankenPHP worker requests:
NoChdirRule(frankenphp.worker.noChdir)NoSetLocaleRule(frankenphp.worker.noSetLocale) — queries viasetlocale($category, 0|"0")allowedNoLocaleSetDefaultRule(frankenphp.worker.noLocaleSetDefault) —locale_set_default()/Locale::setDefault()NoDateDefaultTimezoneSetRule(frankenphp.worker.noDateDefaultTimezoneSet)NoMbEncodingMutationRule(frankenphp.worker.noMbEncodingMutation) —mb_internal_encoding/mb_regex_encoding/mb_http_output/mb_languagewith an argument; no-arg reads allowedNoErrorReportingMutationRule(frankenphp.worker.noErrorReportingMutation)NoUmaskRule(frankenphp.worker.noUmask)
- Hardening rule:
NoPcntlSignalRule(frankenphp.hardening.noPcntlSignal) —pcntl_signal,pcntl_async_signals,pcntl_signal_dispatch,pcntl_signal_get_handler,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_alarm - Fixture demos, Symfony 8 anti-patterns, RuleTestCase coverage, and catalog updates in
RULES.md ROADMAP.mdfor planned expansions and explicit non-goals
Notes
- Consumer action required if you already enable
ruleset-worker.neonand/orruleset-hardening.neon: re-run PHPStan and fix or baseline the new identifiers. SeeUPGRADING.md. - Continue requiring
nowo-tech/phpstan-frankenphp: ^1.0(1.1.0 is a compatible minor).
Commits
- Release v1.1.0: worker process-state rules and pcntl signal hardening. (37c1e75)