![]() However if the method is marked and approved as pure you are guaranteed that this will not happen. It's totally possible to drop your entire database within a getUsername() method (or cause less devastating yet painful to debug modifications). Pure functions only rely on their direct input parameters, and not some outside state that may or may not have been modified elsewhere.Īnother criterium for pure functions is that they do not modify non-local state. without parameters), it may return a different result because the _() or trans() function checks some global state (the locale) to decide which string to return. Then some other code could change the application locale and the next time you call $verifyPhoneNumberRequest->rules() in exactly the same way (i.e. Code reviews have also been much nicer, because most ide inspections will tell you, if your doing something stupid. Boss doesnt want to pay for everyone spend straight up weeks to configure their flavour of sublime. If your application calls $verifyPhoneNumberRequest->rules() it will get a certain result. Phpstorm is context aware, and its easy to manage configuration for multiple people. What is the logic used to determine when this attribute is needed?Ī pure function is one that is guaranteed to always give the same result if called with the same parameters. It’s based on the IntelliJ Platform and feels just like a full IntelliJ-based IDE it has the same editor, code completion, navigation, inspections, and refactoring tools as a local IDE, but all of the files are hosted remotely and all of the language processing is done on the remote server. If I'm understanding the second sentence correctly, when the result of a "pure" method is unused the IDE will flag usage of the method as unused and recommend its removal. ![]() That doesn't really give me any clues why it treats these two methods differently. This means that a function call that resolves to such a function can be safely removed if the execution result is not used in code afterwards. The attribute marks the function that has no impact on the program state or passed parameters used after the function execution. The comments in the class definition say: ![]() The thing I'm puzzled about is that the IDE inspection complains that I should add the JetBrains\PhpStorm\Pure attribute to the rules() method, but not the messages() method. Protected function getPhoneNumberMessage(): string $/", "max:16"] "phone_number.regex" => $this->getPhoneNumberMessage(), Two methods, both of which return a simple array that's partially populated by a method, but the IDE treats them differently. ![]() ![]() I've got a very simple FormRequest class in a Laravel project. ![]()
0 Comments
Leave a Reply. |