/** * getAsset - render assets of a given type for a package * * @param string $name * @param sfDynamicsAssetCollectionDefinition $package * @param string $type * @return string */ public function getAsset($name, sfDynamicsAssetCollectionDefinition $package, $type) { $extension = sfDynamics::getExtensionFromType($type); $getAssets = 'get' . ucfirst($type) . 's'; if (count($assets = $package->{$getAssets}())) { $paths = $package->getPaths('/' . $extension); if (sfDynamicsConfig::isCacheEnabled()) { $cacheKey = sfDynamicsCache::generateKey($package, $type); $cache = sfDynamics::getCache(); if ($cache->has($cacheKey)) { if (sfDynamicsConfig::isCacheUpToDateCheckEnabled()) { foreach ($assets as $asset) { // this is needed to know the actual file path on disk, and to know its mtime. $asset->computePath($paths); } if ($cache->isStillUpToDate($package, $type, $cacheKey)) { $result = $cache->get($cacheKey); } } else { $result = $cache->get($cacheKey); } } } // still no result? let's build it! if (!isset($result)) { $result = $this->getConcatenatedAssets($package, $paths, $assets); $result = sfDynamicsConfig::getConcatenatedAssetFilterChainFor($type)->filter($result); if (sfDynamicsConfig::isCacheEnabled()) { $cache->set($cacheKey, $result); } } return $result; } else { return ''; } }