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. I do the whole stack From backend to frontend I build solid applications that are tested and work years down the road. 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. If your application calls $verifyPhoneNumberRequest->rules() it will get a certain result. 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. You can see how it looks for ANY extension that PhpStorm already supports: just Ctlr Click on on standard class or function (or check live at /JetBrains/phpstorm-stubs ). 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. ReSharper 2023.1 Beta New C inspections to reduce the number of lookups in collections.More adjustable ways to introduce null checks in your C code.The Extract common property pattern inspection and quick-fix.The Remove empty regions inspection and quick-fix.Reworked update dialog. 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. |