Often I want to prepare a package for my colleagues that defines very strict rules about the expectation of what input strings a method argument or property can handle.
If I implement the format validation as an assert, we will only learn about the error at runtime and it may never occur. If there is a native way to define the expected string format, it will be possible to automatically check huge code structures at compiletime.
For example (possible value can be v1.2.3):
function getFirstVersionPart(string $version): int
{
preg_match('/^v(\d+)/', $version, $parser);
return (int) $parser[1];
}
This annotation would help PhpStan recognize how to evaluate a regular expression and that all indexes will exist (and I don't need to handle the occurrence of the 1 index).
Hello,
Often I want to prepare a package for my colleagues that defines very strict rules about the expectation of what input strings a method argument or property can handle.
If I implement the format validation as an assert, we will only learn about the error at runtime and it may never occur. If there is a native way to define the expected string format, it will be possible to automatically check huge code structures at compiletime.
For example (possible value can be
v1.2.3
):This annotation would help PhpStan recognize how to evaluate a regular expression and that all indexes will exist (and I don't need to handle the occurrence of the
1
index).Thanks.