Skip to content

Conversation

@samsonasik
Copy link
Member

@samsonasik samsonasik commented Jul 3, 2022

Apply Rector run on utils/ directory, not only /utils/Rector so other files (PHPStan rules, check_tabs_in_rst.php), will be checked as well.

Checklist:

  • Securely signed commits

@samsonasik samsonasik merged commit 1d767fd into codeigniter4:develop Jul 3, 2022
@samsonasik samsonasik deleted the apply-rector-run-on-utils branch July 3, 2022 06:20
{
/**
* @var string
*/
Copy link
Member

Choose a reason for hiding this comment

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

@samsonasik Why does Rector remove this PHPDoc?

Copy link
Member Author

@samsonasik samsonasik Jul 4, 2022

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

A constant is a constant 🤷‍♂️

I do remember that conversation but I'm also fine if we want to revisit this. I think it is unnecessary to type constants but people do it.

Copy link
Member Author

Choose a reason for hiding this comment

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

ref #4766

Copy link
Member

Choose a reason for hiding this comment

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

It is a common practice to put @var for constants.
I have never seen removing @var for constants.

But at least, PhpStorm does not need @var for constants.
So it does not seem to be inconvenient if it is removed.

Copy link
Member

Choose a reason for hiding this comment

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

A constant is no longer a constant.

The underlying values may be mutable but it is still a fixed type at runtime. If for some awful reason somebody used your example I would expect a docblock explanation, not a type. Providing @var typing for static analysis is unnecessary because constants are always strongly-typed to whatever they are.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, the type is fixed.
But the value is dynamic determined. Very interesting.
https://3v4l.org/dWAaW
I don't know how and when to use it, though.

Copy link
Member

Choose a reason for hiding this comment

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

Object constants are strange to me. I can't even find the RFC that allowed them for a good example of why someone would want one 🤷‍♂️ To me the power of a constant is it's fixed, simple value.

Copy link
Member

@MGatner MGatner Jul 5, 2022

Choose a reason for hiding this comment

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

Here it is: https://wiki.php.net/rfc/new_in_initializers

Looks like it wasn't deliberately for constants, and is also limited strictly to global constants. The fact that the value for the class constant ends up being dynamic is somewhat of a syntax hack.

Copy link
Member

Choose a reason for hiding this comment

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

Typed class constants is under discussion for 8.2: https://wiki.php.net/rfc/typed_class_constants

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.

4 participants