Skip to content

feat: add NoEmptyResponseRule to detect empty HTTP response bodies#34

Open
Martin Bens (SpiGAndromeda) wants to merge 1 commit intomainfrom
feat/no-empty-response-rule
Open

feat: add NoEmptyResponseRule to detect empty HTTP response bodies#34
Martin Bens (SpiGAndromeda) wants to merge 1 commit intomainfrom
feat/no-empty-response-rule

Conversation

@SpiGAndromeda
Copy link
Collaborator

No description provided.

Introduces NoEmptyResponseRule that detects Response class instantiations with empty or missing body content. The rule resolves body and status parameters by name from the constructor signature (e.g. content, data, body) and allows empty bodies for legitimate status codes (204, 301, 302, 303, 304, 307, 308).
$responseType = new ObjectType(Response::class);
$classType = new ObjectType($className);

if (!$responseType->isSuperTypeOf($classType)->yes()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what when I extend that class and create a own constructor with different args?

Copy link
Collaborator Author

@SpiGAndromeda Martin Bens (SpiGAndromeda) Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That should still work. Not with 100% precision though. Two constructor arguments are detected based on their names: the message and the status code. Validation is performed based on that. We can also easily extend the argument name lists.

But people would have to try to circumvent that, willingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments