Author: chabotc
Date: Fri Jun  6 06:57:37 2008
New Revision: 663944

URL: http://svn.apache.org/viewvc?rev=663944&view=rev
Log:
SHINDIG-351 Featureloader legibility of register recursion + removed a no 
longer required debug statement

Modified:
    incubator/shindig/trunk/php/src/gadgets/JsFeatureLoader.php
    incubator/shindig/trunk/php/src/gadgets/JsLibrary.php

Modified: incubator/shindig/trunk/php/src/gadgets/JsFeatureLoader.php
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/JsFeatureLoader.php?rev=663944&r1=663943&r2=663944&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/JsFeatureLoader.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/JsFeatureLoader.php Fri Jun  6 
06:57:37 2008
@@ -22,19 +22,19 @@
 
        public function loadFeatures($path, $registry)
        {
-               $registered = array();
-               $entries = array();
-               $deps = array();
-               $deps = $this->loadFiles($path, $deps);
+               $alreadyRegistered = array();
+               $registeredFeatures = array();
+               $installedFeatures = array();
+               $this->loadFiles($path, $installedFeatures);
+               
                // This ensures that we register everything in the right order.
-               foreach ($deps as $entry) {
-                       $feature = $entry;
-                       $feat = $this->register($registry, $feature, 
$registered, $deps);
-                       if ($feat != null) {
-                               $entries[] = $feat;
+               foreach ($installedFeatures as $feature) {
+                       $registeredFeature = $this->register($registry, 
$feature, $alreadyRegistered, $installedFeatures, $registeredFeatures);
+                       if ($registeredFeature != null) {
+                               $registeredFeatures[] = $registeredFeature;
                        }
                }
-               return $entries;
+               return $registeredFeatures;
        }
 
        private function sortFeaturesFiles($feature1, $feature2)
@@ -62,7 +62,6 @@
                                }
                        }
                }
-               return $features;
        }
 
        private function processFile($file)
@@ -76,18 +75,23 @@
                return $feature;
        }
 
-       private function register(&$registry, $feature, $registered, $all)
+       private function register(&$registry, $feature, &$alreadyRegistered, 
$installedFeatures, &$registeredFeatures)
        {
-               if (isset($registered[$feature->name])) {
+               if (in_array($feature->name, $alreadyRegistered)) {
                        return null;
                }
                foreach ($feature->deps as $dep) {
-                       if (isset($all[$dep]) && ! in_array($dep, $registered)) 
{
-                               $this->register($registry, $all[$dep], 
$registered, $all);
+                       if (isset($installedFeatures[$dep]) && ! in_array($dep, 
$alreadyRegistered)) {
+                               $registeredFeature = $this->register($registry, 
$installedFeatures[$dep], $alreadyRegistered, $installedFeatures, 
$registeredFeatures);
+                               if ($registeredFeature != null) {
+                                       // add dependency to list of loaded 
features
+                                       $registeredFeatures[] = 
$registeredFeature;
+                               }
                        }
+                       // Note: if a depency is missing, it is simply not 
loaded. There is no check for that here
                }
                $factory = new JsLibraryFeatureFactory($feature->gadgetJs, 
$feature->containerJs);
-               $registered[] = $feature->name;
+               $alreadyRegistered[] = $feature->name;
                return $registry->register($feature->name, $feature->deps, 
$factory);
        }
 

Modified: incubator/shindig/trunk/php/src/gadgets/JsLibrary.php
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/JsLibrary.php?rev=663944&r1=663943&r2=663944&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/JsLibrary.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/JsLibrary.php Fri Jun  6 06:57:37 
2008
@@ -55,9 +55,7 @@
                        }
                        $this->loaded = true;
                }
-               //FIXME purely for debugging, remove this asap!
-               // puts a //LIB: <name of feature> above the JS of the feature
-               return "\n\n//LIB: " . $this->featureName . "\n" . 
$this->content;
+               return $this->content;
        }
 
        public function getFeatureName()


Reply via email to