20 protected function checkArg($which, $check, $message) {
21 assert(
'is_string($which)');
22 assert(
'is_bool($check)');
23 assert(
'is_string($message)');
25 throw new \InvalidArgumentException(
"Argument '$which': $message");
37 protected function checkIntArg($which, $value) {
38 $this->checkArg($which, is_int($value), $this->wrongTypeMessage(
"integer", $value));
49 protected function checkStringArg($which, $value) {
50 $this->checkArg($which, is_string($value), $this->wrongTypeMessage(
"string", $value));
62 protected function checkArgInstanceOf($which, $value, $class) {
63 $this->checkArg($which, $value instanceof $class, $this->wrongTypeMessage($class, $value));
76 protected function checkArgIsElement($which, $value, $array, $name) {
77 if (!is_object($value)) {
78 $message =
"expected $name, got '$value'";
81 $message =
"expected $name, got object.";
84 $this->checkArg($which, in_array($value, $array), $message);
97 protected function checkArgList($which,
array &$values, \Closure $check, \Closure $message) {
100 foreach ($values as $key => $value) {
101 $ok = $check($key, $value);
109 if ($failed_k !== null) {
110 $m = $message($failed_k, $failed_v);
116 $this->checkArg($which, $failed_k === null, $m);
129 protected function checkArgListElements($which,
array &$values, &$classes) {
130 $classes = $this->toArray($classes);
134 ,
function($_, $value) use (&$classes) {
135 foreach ($classes as $cls) {
136 if ($cls ===
"string" && is_string($value)) {
139 if ($cls ===
"int" && is_int($value)) {
142 else if ($value instanceof $cls) {
148 ,
function ($_,
$failed) use (&$classes) {
149 return $this->wrongTypeMessage(implode(
", ", $classes),
$failed);
159 protected function toArray($value) {
160 if (is_array($value)) {
163 return array($value);
166 protected function wrongTypeMessage($expected, $value) {
167 $type = gettype($value);
168 if (!is_object($value) && !is_array($value)) {
169 return "expected $expected, got $type '$value'";
172 if (is_object($value)) {
173 $type = get_class($value);
175 return "expected $expected, got $type";
Create styles array
The data for the language used.