Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[Documentation] PSR12 - Constant Visiblity #238

Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions src/Standards/PSR12/Docs/Properties/ConstantVisibilityStandard.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<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.

]]>
</standard>
<code_comparison>
<code title="Valid: Constant visibility declared.">
<![CDATA[
class Foo
{
<em>private</em> const BAR = 'bar';
}
]]>
</code>
<code title="Invalid: Constant visibility not declared.">
<![CDATA[
class Foo
{
<em></em>const BAR = 'bar';
jrfnl marked this conversation as resolved.
Show resolved Hide resolved
}
]]>
</code>
</code_comparison>
</documentation>