DRYer function argument checking 03
October 22, 2014
I've gone on and implemented a logic "OR" method to allow for more flexible function arguments evaluation.
The problem
Trying to make function and methods argument evaluation a more streamlined process I do not want to lose any possibility a "normal" evaluation would allow.
In WordPress functions a recurring case is the one where a value might be a string or a boolean, an array or a string and so on and since I'm relying on such methods myself I could solve the problem with the current Args implementation to go from this code
if ( !is_string($value) && !is_bool($value)){
throw new InvalidArgumentException('Value must be a string or a bool');
}
to this one using the assert() method
Arg::_($value)->assert(is_string($value) || is_bool($value));
Or
Since the assert() method solution alone "works" but does not "kicks" I've added the _or() method to the class.
The check above might be rewritten using the new method like
Arg::_($value)->is_string()->_or()->is_bool();
In latin "vel" means "or" (as "aut" does) so I've added the vel() and aut() methods as aliases of the _or() method too.