Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Documentation] PSR12 - Constant Visiblity #238

Conversation

dingo-d
Copy link
Contributor

@dingo-d dingo-d commented Jan 8, 2024

The PR contains the documentation for the PSR12/Properties/ConstantVisiblity sniff.

Description

This PR will add the documentation for the above-mentioned sniff, according to the official standard definitions.

Suggested changelog entry

Add documentation for the PSR12 ConstantVisiblity sniff

Related issues/external references

Part of #148

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
    • This change is only breaking for integrators, not for external standards or end-users.
  • Documentation improvement

PR checklist

  • I have checked there is no other PR open for the same change.
  • I have read the Contribution Guidelines.
  • I grant the project the right to include and distribute the code under the BSD-3-Clause license (and I have the right to grant these rights).
  • I have added tests to cover my changes.
  • I have verified that the code complies with the projects coding standards.
  • [Required for new sniffs] I have added XML documentation for the sniff.

Copy link
Member

@jrfnl jrfnl left a comment

Choose a reason for hiding this comment

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

Thanks for this PR @dingo-d !

Looking good. Just two small questions.

<documentation title="Constant Visibility">
<standard>
<![CDATA[
Visibility must be declared on all class constants if your project PHP minimum version supports class constant visibilities (PHP 7.1 or later).
Copy link
Member

Choose a reason for hiding this comment

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

Is it "class constants" ? Or all OO constants ? Constants can also be declared on interfaces, traits (PHP 8.2+) and enums, after all.

Also not sure if the "class" needs to be repeated.

Suggested change
Visibility must be declared on all class constants if your project PHP minimum version supports class constant visibilities (PHP 7.1 or later).
Visibility must be declared on all class constants if your project PHP minimum version supports constant visibilities (PHP 7.1 or later).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well, the documentation states

The term "class" refers to all classes, interfaces, and traits.

That's why I opted to use that term.

I added the 'class' to distinguish them from defined constants.

Copy link
Member

Choose a reason for hiding this comment

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

Well, the documentation states

The term "class" refers to all classes, interfaces, and traits.

That's why I opted to use that term.

I added the 'class' to distinguish them from defined constants.

I fully understand (and support) why it was added, I just wonder if the right term was added. After all, the PSR12 definition is not available from within the PHPCS docs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've added this to the documentation description, I think it should help to avoid misunderstandings.

@jrfnl jrfnl added this to the 3.8.x Next milestone Jan 12, 2024
@dingo-d dingo-d requested a review from jrfnl January 12, 2024 16:58
Copy link
Member

@jrfnl jrfnl left a comment

Choose a reason for hiding this comment

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

Thanks @dingo-d ! LGTM.

Only thing I'm wondering about is whether the "The term "class" refers to all classes, interfaces, and traits." phrase should also mention enums ?

Enums didn't exist when PSR12 was written, but the sniff does apply the rule to enums too.

@dingo-d
Copy link
Contributor Author

dingo-d commented Jan 13, 2024

Thanks @dingo-d ! LGTM.

Only thing I'm wondering about is whether the "The term "class" refers to all classes, interfaces, and traits." phrase should also mention enums ?

Enums didn't exist when PSR12 was written, but the sniff does apply the rule to enums too.

Good catch! Will update this to add enums as well.

Add enums to the 'class' list
@jrfnl jrfnl merged commit 8ffe403 into PHPCSStandards:master Jan 13, 2024
38 checks passed
jrfnl pushed a commit that referenced this pull request Jan 13, 2024
* Add the documentation for the PSR12 Constant Visiblity sniff
@jrfnl jrfnl modified the milestones: 3.8.x Next, 3.9.0 Jan 19, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants