/**
  * Constructs object and loads files if possible
  *
  * If a key is used files will be tried to be loaded off that key, if base64
  * that will be loaded and finally the files string
  *
  * @param   array   $config (Optional) An array of config options based off
  *                          app.yml
  * @param   string  $key    (Optional) A sha1 hash to the database table
  * @param   string  $base64 (Optional) A base64 string of files to load
  * @param   string  $files  (Optional) A string of files to load
  *
  * @return  void
  */
 public function __construct($config = array(), $key = '', $base64 = '', $files = '')
 {
     $this->setConfig($config);
     $files = array();
     if ($key) {
         $files = sfCombinePlusUrl::getFilesByKey($key);
     } else {
         if ($base64) {
             $files = sfCombinePlusUrl::getFilesByBase64($base64);
         } else {
             if ($files) {
                 $files = sfCombinePlusUrl::getFiles($files);
             }
         }
     }
     $this->setFiles($files);
 }
/**
 * @see get_combined_javascripts
 */
function get_combined_stylesheets($groups = null, $groupType = sfCombinePlusManager::GROUP_INCLUDE, $onlyUnusedGroups = true, $markGroupsUsed = true)
{
    if (!sfConfig::get('app_sfCombinePlusPlugin_enabled', false)) {
        return get_stylesheets();
    }
    $manager = sfCombinePlusManager::getCssManager();
    sfConfig::set('symfony.asset.stylesheets_included', true);
    $response = sfContext::getInstance()->getResponse();
    $config = sfConfig::get('app_sfCombinePlusPlugin_css', array());
    $doNotCombine = isset($config['combine_skip']) ? $config['combine_skip'] : array();
    $manager->setSkips(array_merge($manager->getSkips(), $doNotCombine));
    $groupedFiles = $manager->getAssetsByGroup($response->getStylesheets(), $config['combine'], $groups, $groupType, $onlyUnusedGroups, $markGroupsUsed);
    $html = '';
    foreach ($groupedFiles as $fileDetails) {
        if (!$fileDetails['combinable']) {
            $html .= stylesheet_tag(stylesheet_path($fileDetails['files']), $fileDetails['options']);
        } else {
            $route = isset($config['route']) ? $config['route'] : 'sfCombinePlus';
            $html .= stylesheet_tag(url_for('@' . $route . '?module=sfCombinePlus&action=js&' . sfCombinePlusUrl::getUrlString($fileDetails['files'])), $fileDetails['options']);
        }
    }
    return $html;
}