Browse Source

Access plugins by class name, not file name

Class name and file name can differ regarding case sensitivity
Daniel Rudolf 9 years ago
parent
commit
a83b01ef4f
1 changed files with 5 additions and 1 deletions
  1. 5 1
      lib/Pico.php

+ 5 - 1
lib/Pico.php

@@ -243,7 +243,11 @@ class Pico
 
 
             $className = preg_replace('/^[0-9]+-/', '', basename($pluginFile, '.php'));
             $className = preg_replace('/^[0-9]+-/', '', basename($pluginFile, '.php'));
             if (class_exists($className)) {
             if (class_exists($className)) {
-                $this->plugins[$className] = new $className($this);
+                // class name and file name can differ regarding case sensitivity
+                $plugin = new $className($this);
+                $className = get_class($plugin);
+
+                $this->plugins[$className] = $plugin;
             } else {
             } else {
                 // TODO: breaks backward compatibility
                 // TODO: breaks backward compatibility
                 //throw new RuntimeException("Unable to load plugin '".$className."'");
                 //throw new RuntimeException("Unable to load plugin '".$className."'");