Also, use `PHP_VERSION_ID` instead.

I am with @danizord on this - the constructor argument should not be nullable (may be misunderstood) and injection should happen in a factory.