Ejemplo n.º 1
0
 /**
  * Convert specified key
  *
  * @param array|string $params
  * @param array $keys
  * @return array|false
  * @throws \Exception
  */
 public static function getSpecifiedParams(array $params = [], $keys = [])
 {
     $keys = (array) $keys;
     if ($lacks = Validator::lack($params, $keys)) {
         $message = i18n::sp('Required keys[%s] don\'t exist.', implode(', ', $lacks));
         throw new \Exception($message);
     }
     $param = [];
     foreach ($keys as $key => $required) {
         switch ($key) {
             case 'SiteID':
             case 'SitePass':
             case 'ShopID':
             case 'ShopPass':
                 $prop = strtolower(preg_replace_callback('#(?<!^)(?<![A-Z])([A-Z])#', function ($match) {
                     return '_' . $match[1];
                 }, $key));
                 $param[$key] = Credential::get()->{$prop};
                 break;
             default:
                 if (isset($params[$key])) {
                     $param[$key] = $params[$key];
                 }
                 break;
         }
     }
     return $param;
 }