public function getDependenciesForDependency(Kwf_Assets_Dependency_Abstract $dependency) { $deps = array(); if ($dependency->getMimeType() != 'text/javascript') { return $deps; } if ($dependency instanceof Kwf_Assets_Dependency_File) { $fileContents = file_get_contents($dependency->getAbsoluteFileName()); } else { $fileContents = $dependency->getContents('en'); } // remove comments to avoid dependencies from docs/examples $fileContents = preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*' . '/!', '', $fileContents); if (preg_match_all('#^\\s*' . '// @require\\s+([a-zA-Z0-9\\./\\-_]+)\\s*$#m', $fileContents, $m)) { foreach ($m[1] as $f) { if (substr($f, -3) == '.js') { //ignore paths continue; } if ($f) { $d = $this->_providerList->findDependency($f); if (!$d) { throw new Kwf_Exception("Can't resolve dependency: require '{$f}' for {$dependency}"); } $deps[Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES][] = $d; } } } return $deps; }
public function getDependenciesForDependency(Kwf_Assets_Dependency_Abstract $dependency) { if ($dependency instanceof Kwf_Assets_Dependency_File_Js && $dependency->getFileNameWithType() != 'kwf/Kwf_js/Utils/Element.js') { $deps = array(); $c = file_get_contents($dependency->getAbsoluteFileName()); if (preg_match('#^\\s*Kwf\\.Utils\\.ResponsiveEl\\(#m', $c)) { $deps[] = 'KwfResponsiveEl'; } if (preg_match('#^\\s*Kwf\\.on(Element)(Ready|Show|Hide|WidthChange)\\(#m', $c, $m)) { $deps[] = 'KwfOnReady'; } if (preg_match('#^\\s*Kwf\\.on(Content)(Ready)\\(#m', $c)) { $deps[] = 'KwfOnReadyCore'; } if (preg_match('#^\\s*Kwf\\.onJElement(Ready|Show|Hide|WidthChange)\\(#m', $c)) { $deps[] = 'KwfOnReadyJQuery'; } if (preg_match('#^\\s*Kwf\\.onComponentEvent\\(#m', $c)) { $deps[] = 'Kwf'; } $ret = array(); foreach ($deps as $i) { $d = $this->_providerList->findDependency($i); if (!$d) { throw new Kwf_Exception("Can't find dependency '{$i}'"); } $ret[] = $d; } return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => $ret); } return array(); }
public function getDependenciesForDependency(Kwf_Assets_Dependency_Abstract $dependency) { $ret = array(); if ($dependency->getMimeType() == 'text/javascript' && $dependency instanceof Kwf_Assets_Dependency_File) { $fn = $dependency->getFileNameWithType(); $match = false; foreach ($this->_paths as $p) { if ($p == substr($fn, 0, strlen($p))) { $match = true; } } if ($match && substr($fn, -3) == '.js') { if (file_exists(substr($dependency->getAbsoluteFileName(), 0, -3) . '.css')) { $fnCss = substr($fn, 0, -3) . '.css'; $ret[Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES][] = new Kwf_Assets_Dependency_File_Css($this->_providerList, $fnCss); } if (file_exists(substr($dependency->getAbsoluteFileName(), 0, -3) . '.scss')) { $fnScss = substr($fn, 0, -3) . '.scss'; $ret[Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES][] = new Kwf_Assets_Dependency_File_Scss($this->_providerList, $fnScss); } } } return $ret; }
public function getDependenciesForDependency(Kwf_Assets_Dependency_Abstract $dependency) { if (!$dependency instanceof Kwf_Assets_Dependency_File_Js) { return array(); } if ($dependency->getFileNameWithType() == 'kwf/Kwf_js/Loader.js') { return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => array(new Kwf_Assets_Dependency_Dynamic_LoaderConfig($this->_providerList))); } $fileContents = file_get_contents($dependency->getAbsoluteFileName()); // remove comments to avoid dependencies from docs/examples $fileContents = preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*' . '/!', '', $fileContents); if (preg_match('#Kwf\\.Loader\\.#', $fileContents)) { $d = $this->_providerList->findDependency('Kwf.Loader'); if (!$d) { throw new Kwf_Exception("Can't find dependency 'Kwf.Loader'"); } return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => array($d)); } return array(); }