public function getAndCheckArgs($argv) { if (!$argv) { return false; } $args_ok = array(); foreach ($argv as $arg) { if (!preg_match('/^--([^=\'"><|`]+)(?:=([^=><|`]+)|(?!license))/i', trim($arg), $res)) { continue; } if ($res[1] == 'license' && !isset($res[2])) { $res[2] = 1; } elseif (!isset($res[2])) { continue; } $args_ok[$res[1]] = $res[2]; } $errors = array(); foreach (Datas::getArgs() as $key => $row) { if (isset($row['name'])) { $name = $row['name']; } else { $name = $key; } if (!isset($args_ok[$name])) { if (!isset($row['default'])) { $errors[] = 'Field ' . $row['name'] . ' is empty'; } else { $this->{$key} = $row['default']; } } elseif (isset($row['validate']) && !call_user_func(array('Validate', $row['validate']), $args_ok[$name])) { $errors[] = 'Field ' . $key . ' is not valid'; } else { $this->{$key} = $args_ok[$name]; } } return count($errors) ? $errors : true; }