Пример #1
0
 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;
 }