implementations sgbd dans env/sgbd
authordj3c1t <dj3c1t@free.fr>
Mon, 9 Jun 2014 15:32:05 +0000 (17:32 +0200)
committerdj3c1t <dj3c1t@free.fr>
Mon, 9 Jun 2014 15:32:05 +0000 (17:32 +0200)
mw/app/controllers/install/index.php
mw/app/data/modules/share/mw_data_sgbds.php [deleted file]
mw/app/init/0300_data.php
mw/env/modules/mw_env_data.php
mw/env/modules/mw_env_sgbds.php [new file with mode: 0644]
mw/env/sgbd/mw_mysql.php [moved from mw/app/data/impl/mw_mysql.php with 100% similarity]
mw/env/sgbd/mw_pdo_mysql.php [moved from mw/app/data/impl/mw_pdo_mysql.php with 100% similarity]
mw/env/sgbd/mw_pdo_sqlite.php [moved from mw/app/data/impl/mw_pdo_sqlite.php with 100% similarity]
mw/env/sgbd/mw_xml.php [moved from mw/app/data/impl/mw_xml.php with 92% similarity]
mw/env/sgbd/xml/mw_xml_data.php [moved from mw/app/data/impl/xml/mw_xml_data.php with 100% similarity]
mw/env/sgbd/xml/mw_xml_data_handler.php [moved from mw/app/data/impl/xml/mw_xml_data_handler.php with 100% similarity]

index 96b917d..16cc9e4 100644 (file)
@@ -19,7 +19,7 @@
         "email" => "",
         "password" => ""
       );
-      if(($sgbds = $data->sgbds()) === false){
+      if(($sgbds = $env->sgbds()) === false){
         $env->erreur("impossible de lister les sgbds disponibles");
         return;
       }
diff --git a/mw/app/data/modules/share/mw_data_sgbds.php b/mw/app/data/modules/share/mw_data_sgbds.php
deleted file mode 100644 (file)
index c40af56..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-  class mw_data_sgbds extends mw_data{
-
-    public function sgbds(){
-      $env = $this->env();
-      $sgbds = array();
-      $impls_dir = $env->app_file("data/impl");
-      if(!file_exists($impls_dir) || !is_dir($impls_dir)){
-        return false;
-      }
-      if($dh = opendir($impls_dir)){
-        $OK = true;
-        while($OK && ($impl_file = readdir($dh)) !== false){
-          if(substr($impl_file, 0 ,1) !== "." && substr($impl_file, -4) == ".php"){
-            require_once $impls_dir."/".$impl_file;
-            if(class_exists($class_name = substr($impl_file, 0, -4))){
-              if(
-                    method_exists($class_name, "name")
-                &&  method_exists($class_name, "extention_ok")
-              ){
-                $impl = new $class_name($env);
-                if($impl->extention_ok($env)) $sgbds[$class_name] = $impl;
-              }
-            }
-          }
-        }
-      }
-      else{
-        return false;
-      }
-      return $sgbds;
-    }
-
-  }
index 672de25..9d376e2 100644 (file)
@@ -1,15 +1,16 @@
 <?php
 
-  if(($plugins = $this->plugins("DESC")) === false){
-    $this->erreur("Impossible de lire les plugins pour charger les modules de donnees", true);
-  }
-  $data = new mw_data(true);
+  // -------------------------------------------------------------------------
+  //                                                                      sgbd
+  //
+
+  $sgbd_impl_file = $this->path("mw_dir")."env/sgbd/mw_".$this->bdd("sgbd").".php";
   if($this->bdd("sgbd")){
-    if(!$this->app_file_exists("data/impl/mw_".$this->bdd("sgbd").".php")){
+    if(!file_exists($sgbd_impl_file)){
       $this->erreur("Impossible de trouver le fichier d'implementation du sgbd ".$this->bdd("sgbd"), true);
     }
     $sgbd_impl = "mw_".$this->bdd("sgbd");
-    if(!class_exists($sgbd_impl)) require_once $this->app_file("data/impl/".$sgbd_impl.".php");
+    if(!class_exists($sgbd_impl)) require_once $sgbd_impl_file;
     if(!class_exists($sgbd_impl)){
       $this->erreur("Impossible de trouver la classe d'implementation du sgbd ".$this->bdd("sgbd"), true);
     }
       $this->erreur("L'extention php ".$this->bdd("sgbd")." n'est pas install&eacute;e", true);
     }
   }
+
+  // -------------------------------------------------------------------------
+  //                                                                      data
+  //
+
+  if(($plugins = $this->plugins("DESC")) === false){
+    $this->erreur("Impossible de lire les plugins pour charger les modules de donnees", true);
+  }
+  $data = new mw_data(true);
   foreach($plugins as $plugin_name => $plugin){
     if($plugin["installed"] && $plugin["enabled"]){
       $data->load_modules($this->path("mw_dir")."plugins/".$plugin_name."/app/", "data/modules/share/");
index 3cb19d1..7d12265 100644 (file)
     }
 
   }
-
-  // -------------------------------------------------------------------------------------------
-  //                                                                               class mw_sgbd
-  //
-
-  abstract class mw_sgbd{
-
-    public $env;
-    public $link;
-    public $host;
-    public $base;
-    public $user;
-    public $password;
-    public $EXTENTION_OK;
-
-    public function __construct($env, $params = array()){
-      $this->env = $env;
-      $default_params = $this->default_params();
-      $params = $this->prepare_params($params);
-      $this->host = isset($params["host"]) ? $params["host"] : $default_params["host"];
-      $this->base = isset($params["base"]) ? $params["base"] : $default_params["base"];
-      $this->user = isset($params["user"]) ? $params["user"] : $default_params["user"];
-      $this->password = isset($params["password"]) ? $params["password"] : $default_params["password"];
-      $this->EXTENTION_OK = $this->validate_extention();
-    }
-
-    public function name(){
-      return "";
-    }
-
-    public function default_params(){
-      return array(
-        "host" => "",
-        "base" => "",
-        "user" => "",
-        "password" => ""
-      );
-    }
-
-    public function prepare_params($params){
-      return $params;
-    }
-
-    public function validate_extention(){
-      return false;
-    }
-
-    public function authentication_required(){
-      return false;
-    }
-
-    public function get_link(){
-      return $this->link;
-    }
-
-    public function extention_ok(){
-      return $this->EXTENTION_OK;
-    }
-
-    public function replace_prefixes($content){
-      return (
-        ($prefix_codes = array_keys($this->env->bdd("table_prefix"))) ?
-          str_replace($prefix_codes, array_values($this->env->bdd("table_prefix")), $content)
-        : $content
-      );
-    }
-
-  }
diff --git a/mw/env/modules/mw_env_sgbds.php b/mw/env/modules/mw_env_sgbds.php
new file mode 100644 (file)
index 0000000..dfdb74f
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+  class mw_env_sgbds extends mw_env{
+
+    private $sgbds;
+
+    public function sgbds(){
+      if(isset($this->sgbds)) return $this->sgbds;
+      $this->sgbds = array();
+      $impls_dir = $this->path("mw_dir")."env/sgbd";
+      if(!file_exists($impls_dir) || !is_dir($impls_dir)){
+        return false;
+      }
+      if($dh = opendir($impls_dir)){
+        $OK = true;
+        while($OK && ($impl_file = readdir($dh)) !== false){
+          if(substr($impl_file, 0 ,1) !== "." && substr($impl_file, -4) == ".php"){
+            require_once $impls_dir."/".$impl_file;
+            if(class_exists($class_name = substr($impl_file, 0, -4))){
+              if(
+                    method_exists($class_name, "name")
+                &&  method_exists($class_name, "extention_ok")
+              ){
+                $impl = new $class_name($this);
+                if($impl->extention_ok($this)) $this->sgbds[$class_name] = $impl;
+              }
+            }
+          }
+        }
+      }
+      else{
+        return false;
+      }
+      return $this->sgbds;
+    }
+
+  }
+
+  // -------------------------------------------------------------------------------------------
+  //                                                                               class mw_sgbd
+  //
+
+  abstract class mw_sgbd{
+
+    public $env;
+    public $link;
+    public $host;
+    public $base;
+    public $user;
+    public $password;
+    public $EXTENTION_OK;
+
+    public function __construct($env, $params = array()){
+      $this->env = $env;
+      $default_params = $this->default_params();
+      $params = $this->prepare_params($params);
+      $this->host = isset($params["host"]) ? $params["host"] : $default_params["host"];
+      $this->base = isset($params["base"]) ? $params["base"] : $default_params["base"];
+      $this->user = isset($params["user"]) ? $params["user"] : $default_params["user"];
+      $this->password = isset($params["password"]) ? $params["password"] : $default_params["password"];
+      $this->EXTENTION_OK = $this->validate_extention();
+    }
+
+    public function name(){
+      return "";
+    }
+
+    public function default_params(){
+      return array(
+        "host" => "",
+        "base" => "",
+        "user" => "",
+        "password" => ""
+      );
+    }
+
+    public function prepare_params($params){
+      return $params;
+    }
+
+    public function validate_extention(){
+      return false;
+    }
+
+    public function authentication_required(){
+      return false;
+    }
+
+    public function get_link(){
+      return $this->link;
+    }
+
+    public function extention_ok(){
+      return $this->EXTENTION_OK;
+    }
+
+    public function replace_prefixes($content){
+      return (
+        ($prefix_codes = array_keys($this->env->bdd("table_prefix"))) ?
+          str_replace($prefix_codes, array_values($this->env->bdd("table_prefix")), $content)
+        : $content
+      );
+    }
+
+  }
similarity index 92%
rename from mw/app/data/impl/mw_xml.php
rename to mw/env/sgbd/mw_xml.php
index 67f2447..e134bec 100644 (file)
     }
 
     public function validate_extention(){
+      $mw_xml_data_file = $this->env->path("mw_dir")."env/sgbd/xml/mw_xml_data.php";
+      $mw_xml_data_handler_file = $this->env->path("mw_dir")."env/sgbd/xml/mw_xml_data_handler.php";
       if(
-            !file_exists($this->env->app_file("data/impl/xml/mw_xml_data.php"))
-        ||  !file_exists($this->env->app_file("data/impl/xml/mw_xml_data_handler.php"))
+            !file_exists($mw_xml_data_file)
+        ||  !file_exists($mw_xml_data_handler_file)
       ){
         return false;
       }
-      if(!class_exists("mw_xml_data")) require_once $this->env->app_file("data/impl/xml/mw_xml_data.php");
-      if(!class_exists("mw_xml_data_handler")) require_once $this->env->app_file("data/impl/xml/mw_xml_data_handler.php");
+      if(!class_exists("mw_xml_data")) require_once $mw_xml_data_file;
+      if(!class_exists("mw_xml_data_handler")) require_once $mw_xml_data_handler_file;
       if(
             !class_exists("mw_xml_data")
         ||  !class_exists("mw_xml_data_handler")