dblayeroo : allow to log with priority

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@5483 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2019-09-16 14:06:05 +00:00
parent ecfe70bcdc
commit 0f6ddcd7ae

View File

@@ -30,7 +30,7 @@ class dblayeroo
private $foreign = array (); private $foreign = array ();
/** Debug of the SQL /** Debug of the SQL
*/ */
private $debug = FALSE; protected $debug = FALSE;
/** The connecting DSN /** The connecting DSN
*/ */
private $dsn = null; private $dsn = null;
@@ -334,7 +334,7 @@ class dblayeroo
public function createTable () public function createTable ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering createTable"); $this->debugLog ("Entering createTable", 2);
if ($this->sep === "") if ($this->sep === "")
$this->DBException (dgettext ("domframework", "Database not connected"), $this->DBException (dgettext ("domframework", "Database not connected"),
500); 500);
@@ -674,7 +674,7 @@ class dblayeroo
public function dropTable () public function dropTable ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering dropTable ()"); $this->debugLog ("Entering dropTable ()", 2);
if ($this->sep === "") if ($this->sep === "")
$this->DBException (dgettext ("domframework", "Database not connected")); $this->DBException (dgettext ("domframework", "Database not connected"));
if ($this->table === null) if ($this->table === null)
@@ -692,7 +692,7 @@ class dblayeroo
public function getTableSchema ($tableName) public function getTableSchema ($tableName)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering getTableSchema (",$tableName,")"); $this->debugLog ("Entering getTableSchema (",$tableName,")", 2);
switch (self::$instance[$this->dsn]->getAttribute(\PDO::ATTR_DRIVER_NAME)) switch (self::$instance[$this->dsn]->getAttribute(\PDO::ATTR_DRIVER_NAME))
{ {
case "sqlite": case "sqlite":
@@ -1048,7 +1048,7 @@ class dblayeroo
private function fieldTypeComplete ($field) private function fieldTypeComplete ($field)
/* {{{ */ /* {{{ */
{ {
// $this->debugLog ("Entering fieldTypeComplete (",$field,")"); // $this->debugLog ("Entering fieldTypeComplete (",$field,")", 2);
if (! array_key_exists ($field, $this->fields)) if (! array_key_exists ($field, $this->fields))
$this->DBException (sprintf ( $this->DBException (sprintf (
"fieldType : can't find the definition for field '%s'", "fieldType : can't find the definition for field '%s'",
@@ -1108,7 +1108,7 @@ class dblayeroo
public function table ($table = null) public function table ($table = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering table (",$table,")"); $this->debugLog ("Entering table (",$table,")", 2);
if ($table === null) if ($table === null)
return $this->table; return $this->table;
if (! is_string ($table)) if (! is_string ($table))
@@ -1126,7 +1126,7 @@ class dblayeroo
public function tableprefix ($tableprefix = null) public function tableprefix ($tableprefix = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering tableprefix (",$tableprefix,")"); $this->debugLog ("Entering tableprefix (",$tableprefix,")", 2);
if ($tableprefix === null) if ($tableprefix === null)
return $this->tableprefix; return $this->tableprefix;
if (! is_string ($tableprefix)) if (! is_string ($tableprefix))
@@ -1147,7 +1147,7 @@ class dblayeroo
public function fields ($fields = null) public function fields ($fields = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering fields (VALUE)"); $this->debugLog ("Entering fields (VALUE)", 2);
if ($fields === null) if ($fields === null)
return $this->fields; return $this->fields;
if (! is_array ($fields)) if (! is_array ($fields))
@@ -1233,7 +1233,7 @@ class dblayeroo
public function primary ($primary = null) public function primary ($primary = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering primary (",$primary,")"); $this->debugLog ("Entering primary (",$primary,")", 2);
if ($primary === null) if ($primary === null)
return $this->primary; return $this->primary;
if (! is_string ($primary)) if (! is_string ($primary))
@@ -1253,7 +1253,7 @@ class dblayeroo
public function unique ($unique = null) public function unique ($unique = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering unique (VALUE)"); $this->debugLog ("Entering unique (VALUE)", 2);
if ($unique === null) if ($unique === null)
return $this->unique; return $this->unique;
if (! is_array ($unique)) if (! is_array ($unique))
@@ -1299,7 +1299,7 @@ class dblayeroo
public function foreign ($foreign = null) public function foreign ($foreign = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering foreign (VALUE)"); $this->debugLog ("Entering foreign (VALUE)", 2);
if ($foreign === null) if ($foreign === null)
return $this->foreign; return $this->foreign;
if (! is_array ($foreign)) if (! is_array ($foreign))
@@ -1360,7 +1360,7 @@ class dblayeroo
public function debug ($debug = null) public function debug ($debug = null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering debug (",$debug,")"); $this->debugLog ("Entering debug (",$debug,")", 2);
if ($debug === null) if ($debug === null)
return $this->debug; return $this->debug;
if (! is_int ($debug)) if (! is_int ($debug))
@@ -1385,7 +1385,7 @@ class dblayeroo
public function dsn ($dsn=null) public function dsn ($dsn=null)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering dsn (",$dsn,")"); $this->debugLog ("Entering dsn (",$dsn,")", 2);
if ($dsn === null) if ($dsn === null)
return $this->dsn; return $this->dsn;
if (! is_string ($dsn)) if (! is_string ($dsn))
@@ -1402,7 +1402,7 @@ class dblayeroo
public function titles ($titles=null, $full = false) public function titles ($titles=null, $full = false)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering titles (VALUE)"); $this->debugLog ("Entering titles (VALUE)", 2);
if ($titles === null) if ($titles === null)
{ {
if ($full === false && $this->joinObject === null) if ($full === false && $this->joinObject === null)
@@ -1563,7 +1563,7 @@ class dblayeroo
/** The debug depth (as we clone object, the depth is increased to debug /** The debug depth (as we clone object, the depth is increased to debug
* easily the functions * easily the functions
*/ */
private $debugDepth = 1; protected $debugDepth = 1;
/** The sort order of select/order entries crossed the differents objects /** The sort order of select/order entries crossed the differents objects
*/ */
@@ -1584,7 +1584,7 @@ class dblayeroo
public function clearRequest () public function clearRequest ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering clearRequest ()"); $this->debugLog ("Entering clearRequest ()", 2);
if ($this->joinObject !== null) if ($this->joinObject !== null)
{ {
foreach ($this->joinObject as $obj) foreach ($this->joinObject as $obj)
@@ -1619,7 +1619,7 @@ class dblayeroo
public function setForeignObj ($object) public function setForeignObj ($object)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering setForeignObj (OBJECT)"); $this->debugLog ("Entering setForeignObj (OBJECT)", 2);
if (! is_object ($object)) if (! is_object ($object))
$this->DBException ("Invalid setForeignObj parameter: not an object"); $this->DBException ("Invalid setForeignObj parameter: not an object");
if (! is_subclass_of ($object, __CLASS__) && if (! is_subclass_of ($object, __CLASS__) &&
@@ -1642,7 +1642,7 @@ class dblayeroo
public function command ($command) public function command ($command)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering command (",$command,")"); $this->debugLog ("Entering command (",$command,")", 2);
$allowed = array ("SELECT", "INSERT", "DELETE", "UPDATE"); $allowed = array ("SELECT", "INSERT", "DELETE", "UPDATE");
if (! is_string ($command)) if (! is_string ($command))
$this->DBException ("Invalid command provided (not string)"); $this->DBException ("Invalid command provided (not string)");
@@ -1728,7 +1728,7 @@ class dblayeroo
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering displayAdd (", $columnNames, ",", $aliasNames, $this->debugLog ("Entering displayAdd (", $columnNames, ",", $aliasNames,
")"); ")", 2);
if (! is_string ($columnNames) && ! is_array ($columnNames)) if (! is_string ($columnNames) && ! is_array ($columnNames))
$this->DBException ( $this->DBException (
"Invalid columnNames provided (not string and not array)"); "Invalid columnNames provided (not string and not array)");
@@ -1986,7 +1986,7 @@ class dblayeroo
public function joinInner ($object, $joinArray) public function joinInner ($object, $joinArray)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering joinInner (OBJECT, JOINARRAY)"); $this->debugLog ("Entering joinInner (OBJECT, JOINARRAY)", 2);
return $this->joinReal ("INNER", $object, $joinArray); return $this->joinReal ("INNER", $object, $joinArray);
} }
/* }}} */ /* }}} */
@@ -2001,7 +2001,7 @@ class dblayeroo
public function joinLeft ($object, $joinArray) public function joinLeft ($object, $joinArray)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering joinLeft (OBJECT, JOINARRAY)"); $this->debugLog ("Entering joinLeft (OBJECT, JOINARRAY)", 2);
return $this->joinReal ("LEFT", $object, $joinArray); return $this->joinReal ("LEFT", $object, $joinArray);
} }
/* }}} */ /* }}} */
@@ -2016,7 +2016,7 @@ class dblayeroo
public function joinRight ($object, $joinArray) public function joinRight ($object, $joinArray)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering joinRight (OBJECT, JOINARRAY)"); $this->debugLog ("Entering joinRight (OBJECT, JOINARRAY)", 2);
return $this->joinReal ("RIGHT", $object, $joinArray); return $this->joinReal ("RIGHT", $object, $joinArray);
} }
/* }}} */ /* }}} */
@@ -2066,7 +2066,7 @@ class dblayeroo
private function joinReal ($joinType, $object, $joinArray) private function joinReal ($joinType, $object, $joinArray)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering joinReal (",$joinType,", OBJECT, JOINARRAY)"); $this->debugLog ("Entering joinReal (",$joinType,", OBJECT, JOINARRAY)", 2);
if (! is_string ($joinType)) if (! is_string ($joinType))
$this->DBException ("Invalid joinType provided to join (not string)"); $this->DBException ("Invalid joinType provided to join (not string)");
if (! in_array ($joinType, array ("INNER", "LEFT", "RIGHT"))) if (! in_array ($joinType, array ("INNER", "LEFT", "RIGHT")))
@@ -2166,7 +2166,7 @@ class dblayeroo
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering whereAdd (",$field,", ",$operator,", ",$value, $this->debugLog ("Entering whereAdd (",$field,", ",$operator,", ",$value,
")"); ")", 2);
if (! is_string ($field)) if (! is_string ($field))
$this->DBException ("Invalid field provided (not string)"); $this->DBException ("Invalid field provided (not string)");
if (! is_string ($operator)) if (! is_string ($operator))
@@ -2225,7 +2225,7 @@ class dblayeroo
public function whereAddAND () public function whereAddAND ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering whereAddAND ()"); $this->debugLog ("Entering whereAddAND ()", 2);
if (count ($this->whereExpression) === 0) if (count ($this->whereExpression) === 0)
$this->DBException ("Can not add AND as there is no previous expression"); $this->DBException ("Can not add AND as there is no previous expression");
$this->whereExpression[] = "AND"; $this->whereExpression[] = "AND";
@@ -2238,7 +2238,7 @@ class dblayeroo
public function whereAddOR () public function whereAddOR ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering whereAddOR ()"); $this->debugLog ("Entering whereAddOR ()", 2);
if (count ($this->whereExpression) === 0) if (count ($this->whereExpression) === 0)
$this->DBException ("Can not add OR as there is no previous expression"); $this->DBException ("Can not add OR as there is no previous expression");
$this->whereExpression[] = "OR"; $this->whereExpression[] = "OR";
@@ -2251,7 +2251,7 @@ class dblayeroo
public function whereAddParenthesisOpen () public function whereAddParenthesisOpen ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering whereAddParenthesisOpen ()"); $this->debugLog ("Entering whereAddParenthesisOpen ()", 2);
if (count ($this->whereExpression) && if (count ($this->whereExpression) &&
end ($this->whereExpression) !== "AND" && end ($this->whereExpression) !== "AND" &&
end ($this->whereExpression) !== "OR" && end ($this->whereExpression) !== "OR" &&
@@ -2267,7 +2267,7 @@ class dblayeroo
public function whereAddParenthesisClose () public function whereAddParenthesisClose ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering whereAddParenthesisClose ()"); $this->debugLog ("Entering whereAddParenthesisClose ()", 2);
$this->whereExpression[] = ")"; $this->whereExpression[] = ")";
return $this; return $this;
} }
@@ -2332,7 +2332,7 @@ class dblayeroo
public function orderAdd ($field, $sort = "ASC") public function orderAdd ($field, $sort = "ASC")
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering orderAdd (",$field,", ",$sort,")"); $this->debugLog ("Entering orderAdd (",$field,", ",$sort,")", 2);
if (! is_string ($field)) if (! is_string ($field))
$this->DBException ("Invalid field provided (not string)"); $this->DBException ("Invalid field provided (not string)");
if (! is_string ($sort)) if (! is_string ($sort))
@@ -2484,7 +2484,7 @@ class dblayeroo
public function limit ($startLine, $nbLines) public function limit ($startLine, $nbLines)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering limit (",$startLine,", ",$nbLines,")"); $this->debugLog ("Entering limit (",$startLine,", ",$nbLines,")", 2);
if (! preg_match ("/^\d+$/", $startLine)) if (! preg_match ("/^\d+$/", $startLine))
$this->DBException (sprintf ( $this->DBException (sprintf (
"Invalid startLine to limit '%d': not numerical", $startLine)); "Invalid startLine to limit '%d': not numerical", $startLine));
@@ -2507,7 +2507,7 @@ class dblayeroo
public function limitLines ($nbLines) public function limitLines ($nbLines)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering limitLines (",$nbLines,")"); $this->debugLog ("Entering limitLines (",$nbLines,")", 2);
if (! preg_match ("/^\d+$/", $nbLines)) if (! preg_match ("/^\d+$/", $nbLines))
$this->DBException (sprintf ( $this->DBException (sprintf (
"Invalid nbLines to limit '%d': not numerical", $nbLines)); "Invalid nbLines to limit '%d': not numerical", $nbLines));
@@ -2525,7 +2525,7 @@ class dblayeroo
public function setValues ($values) public function setValues ($values)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering setValues (",$values,")"); $this->debugLog ("Entering setValues (",$values,")", 2);
if (! is_array ($values)) if (! is_array ($values))
$this->DBException ("Invalid values to setValues : not an array"); $this->DBException ("Invalid values to setValues : not an array");
$values = $this->normalize ($values); $values = $this->normalize ($values);
@@ -3132,7 +3132,7 @@ class dblayeroo
public function checkValues ($values, $update = false) public function checkValues ($values, $update = false)
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering checkValues (",$update,")"); $this->debugLog ("Entering checkValues (",$update,")", 2);
if (! is_array ($values)) if (! is_array ($values))
{ {
$this->DBException ("checkValues fields : ". $this->DBException ("checkValues fields : ".
@@ -3163,7 +3163,8 @@ class dblayeroo
public function checkRealTypes ($values, $allowEmpty = false) public function checkRealTypes ($values, $allowEmpty = false)
// {{{ // {{{
{ {
$this->debugLog ("Entering checkRealTypes (",$values,",",$allowEmpty,")"); $this->debugLog ("Entering checkRealTypes (",$values,",",$allowEmpty,")",
2);
if (! is_array ($values)) if (! is_array ($values))
$this->DBException ("Invalid checkRealTypes provided : not an array", $this->DBException ("Invalid checkRealTypes provided : not an array",
500); 500);
@@ -3215,7 +3216,7 @@ class dblayeroo
public function execute () public function execute ()
/* {{{ */ /* {{{ */
{ {
$this->debugLog ("Entering execute ()"); $this->debugLog ("Entering execute ()", 2);
switch ($this->command) switch ($this->command)
{ {
case "SELECT": case "SELECT":
@@ -3241,9 +3242,9 @@ class dblayeroo
default: default:
$this->DBException ("execute : command not defined : no check"); $this->DBException ("execute : command not defined : no check");
} }
$this->debugLog ("Entering createRequest ()"); $this->debugLog ("Entering createRequest ()", 2);
$sql = $this->createRequest (); $sql = $this->createRequest ();
$this->debugLog ("Entering prepareRequest (XXX, ",false,")"); $this->debugLog ("Entering prepareRequest (XXX, ",false,")", 2);
$st = $this->prepareRequest ($sql, false); $st = $this->prepareRequest ($sql, false);
$this->debugLog ("'", $this->getDisplayQuery (), "'"); $this->debugLog ("'", $this->getDisplayQuery (), "'");
$startTime = microtime (true); $startTime = microtime (true);
@@ -3473,14 +3474,19 @@ class dblayeroo
/** Debug function /** Debug function
* @param mixed ...$message The message to display in debug * @param mixed ...$message The message to display in debug
* @param integer priority The display message if $priority <= $this->debug
*/ */
private function debugLog ($message) public function debugLog ($message, $priority)
/* {{{ */ /* {{{ */
{ {
if ((!!$this->debug) === false) if ((!!$this->debug) === false)
return; return;
$args = func_get_args();
$priority = array_pop ($args);
if ($priority > $this->debug)
return;
echo str_repeat ("=", $this->debugDepth * 2)." "; echo str_repeat ("=", $this->debugDepth * 2)." ";
foreach (func_get_args() as $nb=>$arg) foreach ($args as $nb=>$arg)
{ {
if (is_string ($arg) || is_int ($arg)) if (is_string ($arg) || is_int ($arg))
echo $arg; echo $arg;