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()); }
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')); }
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; }