. */ namespace SP\Config; use SP\Core\Exceptions\ConfigException; use SP\Util\Checks; /** * Class ConfigUtil * * @package Config */ class ConfigUtil { /** * Adaptador para convertir una cadena de extensiones a un array * * @param $filesAllowedExts * @return array */ public static function filesExtsAdapter($filesAllowedExts) { return array_map(function ($value) { if (preg_match('/[^a-z0-9_-]+/i', $value)) { return null; } return strtoupper($value); }, explode(',', $filesAllowedExts)); } /** * Comprobar el archivo de configuración. * Esta función comprueba que el archivo de configuración exista y los permisos sean correctos. * * @throws \SP\Core\Exceptions\ConfigException */ public static function checkConfigDir() { if (!is_dir(CONFIG_PATH)) { clearstatcache(); throw new ConfigException(__u('El directorio "/config" no existe'), ConfigException::CRITICAL); } if (!is_writable(CONFIG_PATH)) { clearstatcache(); throw new ConfigException(__u('No es posible escribir en el directorio "config"'), ConfigException::CRITICAL); } if (!Checks::checkIsWindows() && ($configPerms = decoct(fileperms(CONFIG_PATH) & 0777)) !== '750' ) { clearstatcache(); throw new ConfigException( __u('Los permisos del directorio "/config" son incorrectos'), ConfigException::ERROR, sprintf(__('Actual: %s - Necesario: 750'), $configPerms)); } } }