/** * Maybe compress CSS code. * * @since 140417 Initial release. * * @param string $css Raw CSS code. * * @return string CSS code (possibly compressed). */ protected function maybeCompressCssCode($css) { if ($benchmark = !empty($this->options['benchmark']) && $this->options['benchmark'] === 'details') { $time = microtime(true); } $css = (string) $css; // Force string value. if (isset($this->options['compress_css_code'])) { if (!$this->options['compress_css_code']) { $disabled = true; // Disabled flag. } } if (!$css || !empty($disabled)) { goto finale; // Nothing to do. } if (strlen($css) > 1000000) { // Exclude VERY large files. Too time-consuming. // Should really be compressed ahead-of-time anyway. goto finale; // Don't compress HUGE files. } try { // Catch CSS compression-related exceptions. if (!($compressed_css = \WebSharks\CssMinifier\Core::compress($css))) { // `E_USER_NOTICE` to avoid a show-stopping problem. trigger_error('CSS compression failure.', E_USER_NOTICE); } else { $css = $this->stripUtf8Bom($compressed_css); } // Use compressed CSS file. } catch (\Exception $exception) { trigger_error($exception->getMessage(), E_USER_NOTICE); } finale: // Target point; finale/return value. if ($css) { $css = trim($css); } if ($benchmark && !empty($time) && $css && empty($disabled)) { $this->benchmark->addTime(__FUNCTION__, $time, sprintf('compressing CSS w/ checksum: `%1$s`', md5($css))); } return $css; }
protected function execute($string) { return Core::compress($string); }