Exemplo n.º 1
0
 public function testDependency()
 {
     $files = array(new Kwf_Assets_Dependency_File_Js(new Kwf_Assets_Dependency_EmptyProviderList(), 'kwf/Kwf_js/Kwf.js'));
     $dep = array();
     $d = new Kwf_Assets_Dependency_Dependencies(new Kwf_Assets_Dependency_EmptyProviderList(), $files);
     $this->assertEquals($files, $d->getDependencies(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_ALL));
     $this->assertEquals(null, $d->getContentsPacked()->getFileContents());
 }
Exemplo n.º 2
0
 public function testDependency()
 {
     $files = array(new Kwf_Assets_Dependency_File_Js('kwf/Kwf_js/Kwf.js'));
     $dep = array();
     $d = new Kwf_Assets_Dependency_Dependencies($files);
     $this->assertEquals($files, $d->getDependencies(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_ALL));
     $this->assertEquals(null, $d->getContents('en'));
 }
Exemplo n.º 3
0
 public function getDependency($dependencyName)
 {
     $ret = null;
     if (strtolower($dependencyName) == $this->_path || strtolower($dependencyName) . '.js' == $this->_path) {
         $type = $this->_path;
         $dir = VENDOR_PATH . '/bower_components/' . $this->_path;
         if (file_exists($dir . '/bower.json')) {
             $ret = new Kwf_Assets_Dependency_Dependencies(array(), $dependencyName);
             $bower = json_decode(file_get_contents($dir . '/bower.json'), true);
             if (isset($bower['main'])) {
                 $main = $bower['main'];
                 if (is_string($main)) {
                     $main = array($main);
                 }
                 foreach ($main as $mainFile) {
                     $mainFile = $mainFile;
                     if (substr($mainFile, -3) == '.js') {
                         if (substr($mainFile, -7) == '.min.js' || substr($mainFile, -7) == '-min.js') {
                             //we don't want to use min file
                             $mainFile = substr($mainFile, 0, -7) . '.js';
                         }
                         if (file_exists($dir . '/' . substr($mainFile, 0, -3) . '.min.js') && file_exists($dir . '/' . substr($mainFile, 0, -3) . '.min.map')) {
                             //use shipped minimied+map file if exists
                             $d = new Kwf_Assets_Dependency_File_JsPreBuilt($type . '/' . $mainFile, $type . '/' . substr($mainFile, 0, -3) . '.min.js', $type . '/' . substr($mainFile, 0, -3) . '.min.map');
                         } elseif (file_exists($dir . '/' . substr($mainFile, 0, -3) . '-min.js') && file_exists($dir . '/' . substr($mainFile, 0, -3) . '-min.map')) {
                             //use shipped minimied+map file if exists
                             $d = new Kwf_Assets_Dependency_File_JsPreBuilt($type . '/' . $mainFile, $type . '/' . substr($mainFile, 0, -3) . '-min.js', $type . '/' . substr($mainFile, 0, -3) . '-min.map');
                         } else {
                             $d = new Kwf_Assets_Dependency_File_Js($type . '/' . $mainFile);
                         }
                         $ret->addDependency(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES, $d);
                     } elseif (substr($mainFile, -4) == '.css') {
                         $d = new Kwf_Assets_Dependency_File_Css($type . '/' . $mainFile);
                         $ret->addDependency(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES, $d);
                     }
                 }
             } else {
                 throw new Kwf_Exception("No main property in {$dir}/bower.json");
             }
             if (isset($bower['dependencies'])) {
                 foreach ($bower['dependencies'] as $depName => $version) {
                     $d = $this->_providerList->findDependency($depName);
                     if (!$d) {
                         throw new Kwf_Exception("Can't find dependency '{$depName}'");
                     }
                     $ret->addDependency(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES, $d);
                 }
             }
             $deps = $ret->getDependencies(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_ALL);
             if (count($deps) == 1) {
                 $ret = $deps[0];
             }
         } else {
             $ret = $this->_guessMainFiles($dependencyName);
         }
     } else {
         if (substr($dependencyName, 0, 8) == 'FontFace' && strlen($dependencyName) > 8) {
             //eg. FontFaceIcomoon, FontFaceFontAwesome, FontFaceIonicons
             $bowerName = substr($dependencyName, 8);
             $bowerName[0] = strtolower($bowerName[0]);
             if (file_exists('vendor/bower_components/' . $bowerName . '/fonts.css')) {
                 $ret = new Kwf_Assets_Dependency_File_Css($bowerName . '/fonts.css');
             } else {
                 if (file_exists('vendor/bower_components/' . $bowerName . '-font/fonts.css')) {
                     $ret = new Kwf_Assets_Dependency_File_Css($bowerName . '-font/fonts.css');
                 } else {
                     if (file_exists('vendor/bower_components/' . $bowerName . '-fonts/fonts.css')) {
                         $ret = new Kwf_Assets_Dependency_File_Css($bowerName . '-fonts/fonts.css');
                     } else {
                         if (file_exists('vendor/bower_components/' . $bowerName . '-font/css/' . $bowerName . '-font.css')) {
                             $ret = new Kwf_Assets_Dependency_File_Css($bowerName . '-font/css/' . $bowerName . '-font.css');
                         } else {
                             if (file_exists('vendor/bower_components/' . $bowerName)) {
                                 $ret = new Kwf_Assets_Dependency_FontFace($bowerName, $bowerName);
                             } else {
                                 if (file_exists('vendor/bower_components/' . $bowerName . '-font')) {
                                     $ret = new Kwf_Assets_Dependency_FontFace($bowerName, $bowerName . '-font');
                                 } else {
                                     if (file_exists('vendor/bower_components/' . $bowerName . '-fonts')) {
                                         $ret = new Kwf_Assets_Dependency_FontFace($bowerName, $bowerName . '-fonts');
                                     } else {
                                         throw new Kwf_Exception("Can't find font dependency for {$dependencyName}");
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $ret;
 }