$value) { $modifiedArray[':' . $key] = $value; } return $modifiedArray; } public function slimIds(array $ids): array { $filtered = array_filter($ids, static function ($value): bool { return $value !== null; }); return array_unique($filtered); } public function updateStringByPlaceholders(array $placeholders): string { $transformed = array_map(static function ($item): string { $key = ltrim($item, ':'); return "{$key} = {$item}"; }, $placeholders); return implode(', ', $transformed); } public function validateIP(string $ip): bool { return filter_var($ip, FILTER_VALIDATE_IP) !== false; } // Validate date public function validateDate(string $date, string $format = 'Y-m-d'): bool { $d = \DateTime::createFromFormat($format, $date); return $d && $d->format($format) === $date; } public function validateDates(array $dates): bool { foreach ($dates as $date) { if ($date !== null && !$this->validateDate($date)) { return false; } } return true; } public function validateCidr(string $cidr): bool { $parts = explode('/', $cidr); if (count($parts) !== 2) { return false; } $ip = $parts[0]; $netmask = intval($parts[1]); if ($netmask < 0) { return false; } if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return $netmask <= 32; } if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { return $netmask <= 128; } return false; } }