public static function readableDirectory($value)
    {
        if (empty($value)) {
            throw new \InvalidArgumentException("Empty path given.");
        }

        if (!is_dir($value)) {
            throw new \InvalidArgumentException("Given path is not a regular directory.");
        }

        if (!is_readable($value)) {
            throw new \InvalidArgumentException("Given directory is not readable.");
        }

        return $value;
    }