public function getDependenciesForDependency(Kwf_Assets_Dependency_Abstract $dependency) { if ($dependency->getContents('en') == 'A') { return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => array($this->_providerList->findDependency('B'))); } else { if ($dependency->getContents('en') == 'B') { return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_USES => array($this->_providerList->findDependency('C'))); } else { if ($dependency->getContents('en') == 'C') { return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => array($this->_providerList->findDependency('A'))); } } } }
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->getMimeType() == 'text/css') { if (strpos($dependency->getContentsSourceString(), 'el-breakpoint') === false) { return array(); } $contents = $dependency->getContents('en'); if (preg_match_all('#([^}{]*){[^}]*kwf-responsive-el-gt:\\s*([0-9]+)#', $contents, $m)) { $selectors = array(); foreach (array_keys($m[1]) as $k) { if (!isset($selectors[$m[1][$k]])) { $selectors[$m[1][$k]] = array(); } $selectors[$m[1][$k]][] = $m[2][$k]; } foreach ($selectors as $selector => $breakpoints) { $d = new Kwf_Assets_ResponsiveEl_JsDependency(trim($selector), $breakpoints, 'ResponsiveEl-' . $dependency->__toString()); $d->addDependency(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_COMMONJS, $this->_providerList->findDependency('kwf/responsive-el'), 'kwf/responsive-el'); $ret[] = $d; } return array(Kwf_Assets_Dependency_Abstract::DEPENDENCY_TYPE_REQUIRES => $ret); } } return array(); }