public static function handleCacheManifestRequest(Sencha_App $App) { $templateNode = Emergence\Dwoo\Template::findNode($App->getFramework() . '.tpl'); $cacheConfig = $App->getAppCfg('appCache'); header('Content-Type: text/cache-manifest'); echo "CACHE MANIFEST\n"; echo "# {$templateNode->SHA1}\n"; if (!empty($cacheConfig['cache']) && is_array($cacheConfig['cache'])) { foreach ($cacheConfig['cache'] as $path) { if ($path != 'index.html') { $path = "build/production/{$path}"; echo "{$path}\n"; if ($assetNode = $App->getAsset($path)) { echo "#{$assetNode->SHA1}\n"; } } } } if (!empty($_GET['platform']) && !empty($cacheConfig['platformCache']) && !empty($cacheConfig['platformCache'][$_GET['platform']]) && is_array($cacheConfig['platformCache'][$_GET['platform']])) { echo "\n# {$_GET['platform']}:\n"; foreach ($cacheConfig['platformCache'][$_GET['platform']] as $path) { $path = "build/production/{$path}"; if ($assetNode = $App->getAsset($path)) { echo "{$path}\n"; echo "#{$assetNode->SHA1}\n"; } } } echo "\nFALLBACK:\n"; if (!empty($cacheConfig['fallback']) && is_array($cacheConfig['fallback'])) { foreach ($cacheConfig['fallback'] as $path) { echo "{$path}\n"; } } echo "\nNETWORK:\n"; if (!empty($cacheConfig['network']) && is_array($cacheConfig['network'])) { foreach ($cacheConfig['network'] as $path) { echo "{$path}\n"; } } echo "\n# TRIGGERS:\n"; $templateNode = Emergence\Dwoo\Template::findNode($App->getFramework() . '.tpl'); echo "#template: {$templateNode->SHA1}\n"; if (!empty($cacheConfig['triggers']) && is_array($cacheConfig['triggers'])) { foreach ($cacheConfig['triggers'] as $path) { $assetNode = $path[0] == '/' ? Site::resolvePath($path) : $App->getAsset($path); if ($assetNode) { echo "#{$assetNode->SHA1}\n"; } } } exit; }