-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Fixed the @return value of Response::setStatusCode() #20290
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
Conversation
javiereguiluz
commented
Oct 24, 2016
Q | A |
---|---|
Branch? | 2.7 |
Bug fix? | yes |
New feature? | no |
BC breaks? | no |
Deprecations? | no |
Tests pass? | yes |
Fixed tickets | #19821 |
License | MIT |
Doc PR | - |
I still don't know what the "best practices" is here as I remember some discussions about this. Anyway, don't you think we should fix all the |
@@ -447,7 +447,7 @@ public function getProtocolVersion() | |||
* If the status text is null it will be automatically populated for the known | |||
* status codes and left empty otherwise. | |||
* | |||
* @return Response | |||
* @return $this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I vote for @return self
since it's now used in php 7 as returned type hint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What PSR-X tells us about this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For phpdoc see https://www.phpdoc.org/docs/latest/references/phpdoc/types.html, self
is in the list. Same for the php RFC about return type hint, self
and parent
https://wiki.php.net/rfc/return_types#differences_from_past_rfcs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was more thinking about https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for the link, looks like self
is in the Appendix A as well https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#appendix-a-types
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$this
is allowed
https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#appendix-a-types
> keyword = "resource" / "self" / "static" / "string" / "true" / "void" / "$this"
Didnt read well @HeahDude :)
For PHPStorm $this
gives way better DX so it seems (opposed to self
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For PHPStorm $this gives way better DX so it seems (opposed to self).
How that? We use self
in many projects for some time now and it works pretty well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😭
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I personally use static
everytime (because it behaves like late static binding), but according to PSR-5 Keywords section, 14-15:
static
, the element to which this type applies is of the same class as which the documented element is contained, or when encountered in a subclass is of type of that subclass instead of the original class.This keyword behaves the same way as the keyword for late static binding (not the static method, property, nor variable modifier) as defined by PHP.
$this
, the element to which this type applies is the same exact instance as the current class in the given context. As such this type is a stricter version of static as, in addition, the returned instance must not only be of the same class but also the same instance.
$this
seems the most appropriate. 👍
self
isn't because:
the element to which this type applies is of the same class as which the documented element is originally contained
which means:
it may lead to confusing situations when inheritance is involved
@@ -219,7 +219,7 @@ public function __construct($content = '', $status = 200, $headers = array()) | |||
* @param int $status The response status code | |||
* @param array $headers An array of response headers | |||
* | |||
* @return Response | |||
* @return $this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure this goes for static. Perhaps use @return static
in these cases.
edit: it works though :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be static
indeed (IMHO)
👍 Status: Reviewed |
👍 LGTM |
What about fixing the whole codebase instead of just one class? I can do it it you want as merging into other branches will be difficult. |
@fabpot 👍 I agree. Please, fix the entire codebase as you'll do it better than me. Thanks! |
Should this be something checked by the cs-fixer? |
see #21054 |
…ant (fabpot) This PR was merged into the 2.7 branch. Discussion ---------- Fix @return statements to use $this or static when relevant | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #20290 | License | MIT | Doc PR | n/a see #20290 Commits ------- 3c0693d fixed @return when returning this or static
This PR was merged into the 2.7 branch. Discussion ---------- [Config] Improve PHPdoc / IDE autocomplete | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes-ish | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #... <!-- #-prefixed issue number(s), if any --> | License | MIT | Doc PR | symfony/symfony-docs#... <!--highly recommended for new features--> The missing pieces for fixing the autocomplete in IDE's (tested in `PhpStorm 2016.3.2`). Each method seems to be found now for the framework bundle configuration 😱 Actually uses #20923 where needed, but i think we should go with it consistently. Relates to #20290 (comment) Commits ------- 3f3c6e0 [Config] Improve PHPdoc / IDE autocomplete