EvilFreelancer/openvpn-php

View on GitHub
src/Helpers.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenVPN;

use RuntimeException;

/**
 * Class Helpers
 *
 * @package OpenVPN
 * @since   1.0.0
 */
class Helpers
{
    /**
     * Check if provided type of certs is allowed
     *
     * @param string $key
     *
     * @throws \RuntimeException
     */
    public static function isCertAllowed(string $key): void
    {
        if (!in_array($key, Config::ALLOWED_TYPES_OF_CERTS, true)) {
            throw new RuntimeException("Key '$key' not in list of allowed [" . implode(',', Config::ALLOWED_TYPES_OF_CERTS) . ']');
        }
    }

    /**
     * Convert string like "makeMeHappy" to "make-me-happy"
     *
     * @param string $input
     *
     * @return string
     */
    public static function decamelize(string $input): string
    {
        preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $input, $matches);
        $result = $matches[0];
        foreach ($result as &$match) {
            $match = $match === strtoupper($match) ? strtolower($match) : lcfirst($match);
        }
        return implode('-', $result);
    }
}