Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }
Exemple #4
0
 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();
 }