コード例 #1
0
 public function showAssetPackageSizesAction()
 {
     $a = new Kwf_Util_Build_Types_Assets();
     $packages = $a->getAllPackages();
     $langs = $a->getAllLanguages();
     $exts = array('js', 'defer.js', 'css');
     foreach ($packages as $p) {
         $depName = $p->getDependencyName();
         $language = $langs[0];
         foreach ($exts as $extension) {
             $cacheId = Kwf_Assets_Dispatcher::getCacheIdByPackage($p, $extension, $language);
             $cacheContents = Kwf_Assets_BuildCache::getInstance()->load($cacheId);
             echo "{$depName} ";
             $h = new Kwf_View_Helper_FileSize();
             echo "{$extension} size: " . $h->fileSize(strlen(gzencode($cacheContents['contents'], 9, FORCE_GZIP)));
             echo "\n";
         }
     }
     $d = Kwf_Assets_Package_Default::getDefaultProviderList()->findDependency('Frontend');
     foreach ($d->getFilteredUniqueDependencies('text/javascript') as $i) {
         if ($i instanceof Kwf_Assets_Dependency_File && $i->getType() == 'ext2') {
             echo "\n[WARNING] Frontend text/javascript contains ext2\n";
             echo "To improve frontend performance all ext2 dependencies should be moved to defer\n\n";
             break;
         }
     }
     exit;
 }
コード例 #2
0
 public function countCssSelectorsAction()
 {
     $a = new Kwf_Util_Build_Types_Assets();
     $langs = $a->getAllLanguages();
     $packages = $a->getAllPackages();
     foreach ($packages as $p) {
         $c = $p->getBuildContents('text/css', $langs[0]);
         $count = Kwf_Assets_Util_CssSelectorCount::count($c);
         echo $p->getDependency() . ': ' . $count . " rules\n";
     }
     exit;
 }
コード例 #3
0
ファイル: Watcher.php プロジェクト: nsams/koala-framework
 private static function _clearAssetsAll($fileType = null)
 {
     if (!$fileType) {
         self::_clearAssetsAll('js');
         self::_clearAssetsAll('defer.js');
         self::_clearAssetsAll('css');
         self::_clearAssetsAll('printcss');
         return;
     }
     $fileNames = array('cache/assets/output-cache-ids-' . $fileType, 'build/assets/output-cache-ids-' . $fileType);
     foreach ($fileNames as $fileName) {
         if (file_exists($fileName)) {
             $cacheIds = file($fileName);
             unlink($fileName);
             foreach ($cacheIds as $cacheId) {
                 $cacheId = trim($cacheId);
                 echo $cacheId;
                 if (Kwf_Assets_Cache::getInstance()->remove($cacheId)) {
                     echo " [DELETED]";
                 }
                 if (Kwf_Assets_BuildCache::getInstance()->remove($cacheId)) {
                     echo " [build DELETED]";
                 }
                 if (Kwf_Cache_SimpleStatic::_delete(array('as_' . $cacheId . '_gzip', 'as_' . $cacheId . '_deflate'))) {
                     echo " [gzip DELETED]";
                 }
                 if (Kwf_Assets_Cache::getInstance()->remove($cacheId . '_map')) {
                     echo " [map DELETED]";
                 }
                 if (Kwf_Assets_BuildCache::getInstance()->remove($cacheId . '_map')) {
                     echo " [build map DELETED]";
                 }
                 if (Kwf_Cache_SimpleStatic::_delete(array('as_' . $cacheId . '_map_gzip', 'as_' . $cacheId . '_map_deflate'))) {
                     echo " [map_gzip DELETED]";
                 }
                 echo "\n";
             }
         }
     }
     $fileName = 'build/assets/package-max-mtime-' . $fileType;
     if (file_exists($fileName)) {
         $cacheIds = file($fileName);
         unlink($fileName);
         foreach ($cacheIds as $cacheId) {
             $cacheId = trim($cacheId);
             echo $cacheId;
             if (Kwf_Assets_BuildCache::getInstance()->remove($cacheId)) {
                 echo " [DELETED]";
             }
             echo "\n";
         }
     }
     $a = new Kwf_Util_Build_Types_Assets();
     $a->flagAllPackagesOutdated($fileType);
     self::_informDuckcast($fileType);
 }
コード例 #4
0
 private static function _clearAssetsAll($fileType = null)
 {
     if (!$fileType) {
         self::_clearAssetsAll('js');
         self::_clearAssetsAll('css');
         return;
     }
     $fileNames = array('cache/assets/output-cache-ids-' . $fileType, 'build/assets/output-cache-ids-' . $fileType);
     $assetsCacheIds = array();
     $assetsBuildCacheIds = array();
     $simpleStaticCacheIds = array();
     foreach ($fileNames as $fileName) {
         if (file_exists($fileName)) {
             $cacheIds = file($fileName);
             unlink($fileName);
             foreach ($cacheIds as $cacheId) {
                 $cacheId = trim($cacheId);
                 echo $cacheId . "\n";
                 $assetsCacheIds[] = $cacheId;
                 $assetsBuildCacheIds[] = $cacheId;
                 $simpleStaticCacheIds[] = 'as_' . $cacheId . '_gzip';
                 $simpleStaticCacheIds[] = 'as_' . $cacheId . '_deflate';
                 $assetsCacheIds[] = $cacheId . '_map';
                 $assetsBuildCacheIds[] = $cacheId . '_map';
                 $simpleStaticCacheIds[] = 'as_' . $cacheId . '_map_gzip';
                 $simpleStaticCacheIds[] = 'as_' . $cacheId . '_map_deflate';
             }
         }
     }
     if ($assetsCacheIds) {
         Kwf_Assets_Cache::getInstance()->remove($assetsCacheIds);
     }
     if ($assetsBuildCacheIds) {
         Kwf_Assets_BuildCache::getInstance()->remove($assetsBuildCacheIds);
     }
     if ($simpleStaticCacheIds) {
         Kwf_Cache_SimpleStatic::_delete($simpleStaticCacheIds);
     }
     $a = new Kwf_Util_Build_Types_Assets();
     $a->flagAllPackagesOutdated($fileType);
     self::_informDuckcast($fileType);
     if ($fileType == 'css') {
         self::_clearAssetsAll('0.css');
         self::_clearAssetsAll('1.css');
         self::_clearAssetsAll('ie8.css');
     }
     if ($fileType == 'js') {
         self::_clearAssetsAll('defer.js');
     }
 }
コード例 #5
0
 private function _buildOutputForUrl($url)
 {
     Kwf_Util_MemoryLimit::set(768);
     class_exists('Kwf_Trl');
     //required because setup doesn't load Trl.php before dispatching assets
     $param = explode('/', $url);
     if (count($param) != 4) {
         throw new Kwf_Exception_NotFound();
     }
     $dependencyClass = $param[0];
     $dependencyParams = $param[1];
     $language = $param[2];
     $extension = $param[3];
     if (!class_exists($dependencyClass)) {
         throw new Kwf_Exception_NotFound();
     }
     if (!is_instance_of($dependencyClass, 'Kwf_Assets_Interface_UrlResolvable')) {
         throw new Kwf_Exception_NotFound();
     }
     //build whole assets dependency tree
     //required for eg. Modernizr to pick up all required tests
     $buildType = new Kwf_Util_Build_Types_Assets();
     $packages = $buildType->getAllPackages();
     $providers = array();
     foreach ($packages as $p) {
         foreach ($p->getProviderList()->getProviders() as $provider) {
             if (!in_array($provider, $providers)) {
                 $providers[] = $provider;
                 $provider->initialize();
             }
         }
     }
     foreach ($packages as $p) {
         $p->getDependency()->getRecursiveDependencies();
     }
     $package = call_user_func(array($dependencyClass, 'fromUrlParameter'), $dependencyClass, $dependencyParams);
     if (!$package instanceof Kwf_Assets_Package) {
         throw new Kwf_Exception_NotFound();
     }
     return $package->getUrlContents($extension, $language);
 }