Explorar o código

updated DBG for Wfs, Mysql, Data_Source

Piotr Labudda %!s(int64=9) %!d(string=hai) anos
pai
achega
ce6bdd7baf

+ 16 - 15
SE/se-lib/Api/WfsDataServer.php

@@ -4,6 +4,7 @@ Lib::loadClass('Api_WfsServerBase');
 Lib::loadClass('Api_WfsException');
 Lib::loadClass('Api_WfsGeomTypeConverter');
 Lib::loadClass('Api_WfsNs');
+Lib::loadClass('DBG');
 
 class Api_WfsDataServer extends Api_WfsServerBase {
 
@@ -99,9 +100,9 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 	}
 
 	public function getTotalFeatures($args, $simple = true) {
-		$DBG = (V::get('DBG_GEO', '', $_GET) > 0);// TODO: Profiler
-		if($DBG){echo "typeName({$args['xsd:type']})\n";}
+		DBG::log("typeName({$args['xsd:type']})");
 		$acl = $this->getAclFromTypeName($args['xsd:type']);
+		DBG::log([ 'msg'=>"typeName({$args['xsd:type']}) - acl(".get_class($acl).")", '$acl'=>$acl ]);
 		$fldList = $this->_getFieldListFromAcl($acl);
 
 		$baseNsUri = Api_WfsNs::getBaseWfsUri();
@@ -121,7 +122,7 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 			}
 		}
 
-		if($DBG){echo "ogcFilter(" . strlen($args['ogc:filter']) . "): {$args['ogc:filter']}\n";}
+		DBG::log("ogcFilter(" . strlen($args['ogc:filter']) . "): {$args['ogc:filter']}");
 		$searchParams = array();
 		$searchParams['limit'] = $args['limit'];
 		$searchParams['limitstart'] = $args['offset'];
@@ -135,9 +136,9 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 		if (!empty($args['filterFields'])) $searchParams['cols'] = $args['filterFields'];// propertyName
 		if (!empty($args['primaryKey'])) $searchParams['primaryKey'] = $args['primaryKey'];// featureID
 		if (!empty($args['bbox'])) $searchParams['f_the_geom'] = "BBOX:{$args['bbox']}";
-		if($DBG){echo 'getItems() searchParams:';print_r($searchParams);echo "\n";}
+		DBG::log([ 'msg'=>"getTotal() - searchParams", '$searchParams'=>$searchParams ]);
 		$totalItems = $acl->getTotal($searchParams);
-		if($DBG){echo 'totalItems:';print_r($totalItems);echo "\n";}
+		DBG::log([ 'msg'=>"getTotal() - total", '$totalItems'=>$totalItems ]);
 
 		$xmlWriter = new XMLWriter();
 		if (!$xmlWriter) throw new HttpException("Error no XMLWriter", 404);
@@ -159,11 +160,10 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 	}
 
 	public function getFeatures($args, $simple = true) {
-		$DBG = (V::get('DBG_GEO', '', $_GET) > 0);// TODO: Profiler
-		$DBG_DS = V::get('DBG_DS', 0, $_GET, 'int');
 		$type = $args['typeName'];
-		if($DBG){echo "typeName({$args['xsd:type']})\n";}
+		DBG::log("typeName({$args['xsd:type']})");
 		$acl = $this->getAclFromTypeName($args['xsd:type']);
+		DBG::log([ 'msg'=>"typeName({$args['xsd:type']}) - acl(".get_class($acl).")", '$acl'=>$acl ]);
 		$fldList = $this->_getFieldListFromAcl($acl);
 
 		$baseNsUri = Api_WfsNs::getBaseWfsUri();
@@ -183,7 +183,7 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 			}
 		}
 
-		if($DBG){echo "ogcFilter(" . strlen($args['ogc:filter']) . "): {$args['ogc:filter']}\n";}
+		DBG::log("ogcFilter(" . strlen($args['ogc:filter']) . "): {$args['ogc:filter']}");
 		$searchParams = array();
 		$searchParams['limit'] = $args['limit'];
 		$searchParams['limitstart'] = $args['offset'];
@@ -197,8 +197,9 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 		if (!empty($args['filterFields'])) $searchParams['cols'] = $args['filterFields'];// PropertyName
 		if (!empty($args['primaryKey'])) $searchParams['primaryKey'] = $args['primaryKey'];// featureID
 		if (!empty($args['bbox'])) $searchParams['f_the_geom'] = "BBOX:{$args['bbox']}";
-		if($DBG){echo 'getItems:';print_r($searchParams);echo "\n";}
+		DBG::log([ 'msg'=>'getItems - $searchParams', '$searchParams'=>$searchParams ]);
 		$items = $acl->getItems($searchParams);
+		DBG::log([ 'msg'=>'getItems - $items', '$items'=>$items ]);
 
 		header('Content-type: application/xml; charset=utf-8');
 		$xmlWriter = new XMLWriter();
@@ -219,20 +220,20 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 		if (!$simple) $xmlWriter->writeAttribute("xmlns:{$rootWfsNs}", $rootWfsNsUri);
 		$xmlWriter->writeAttribute('xsi:schemaLocation', "{$wfsNsUri} {$featureTypeUri}");
 
-		if($DBG){echo '(geomFld: '.$geomFld.'):';print_r($acl->getFieldType($geomFld));echo "\n";}
+		DBG::log([ 'msg'=>'$geomFld - getFieldType', 'getFieldType'=>$acl->getFieldType($geomFld) ]);
 		$tblName = $acl->getName();
 		foreach ($items as $itemKey => $item) {
 			if (!is_array($item)) $item = (array)$item;
 
-			if($DBG && !empty($geomFld)){echo 'item['.$itemKey.'] ('.$geomFld.')isEmpty('.empty($item[$geomFld]).'):';print_r($item[$geomFld]);echo "\n";}
-			if($DBG_DS){echo ">>> loop({$itemKey}) item: ";print_r($item);echo "\n";}
+			if (!empty($geomFld)) DBG::log(['msg'=>"item[{$itemKey}] ({$geomFld})isEmpty(".empty($item[$geomFld])."):", '$item['.$geomFld.']'=>$item[$geomFld]]);
+			DBG::log([ 'msg'=>">>> loop({$itemKey})", '$item'=>$item ]);
 
 			$xmlWriter->startElement('gml:featureMember');
 				$xmlWriter->startElement("{$wfsNs}:{$type}");
 					$xmlWriter->writeAttribute('fid', "{$type}.{$itemKey}");
 					if (!$simple) $xmlWriter->writeAttribute("{$rootWfsNs}:web_link", Request::getPathUri() . "index.php?_route=ViewTableAjax&namespace=" . $acl->getNamespace() . "#EDIT/{$itemKey}");
 					foreach ($fldList as $idZasob => $fldName) {
-						if($DBG_DS){echo ">>> loop({$itemKey}) item({$item['ID']}) fld({$fldName}): ";var_dump($item[$fldName]);echo"\n";}
+						DBG::log([ 'msg'=>">>> loop({$itemKey}) item({$item['ID']}) fld({$fldName})", '$item'=>$item[$fldName] ]);
 						$fldType = $acl->getXsdFieldType($fldName);
 						if (!$acl->canReadObjectField($fldName, (object)$item)) continue;
 
@@ -247,7 +248,7 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 								$this->_typeConverter->createGmlFromWkt_xmlWriter($item[$fldName], $xmlWriter);
 							$xmlWriter->endElement();// {$wfsNs}:{$fldName}
 						} else if (is_array($item[$fldName])) {// TODO: by struct - REF field
-							if($DBG_DS){echo">>> TODO({$fldName}) REF item[{$itemKey}][{$fldName}]: ";print_r($item[$fldName]);echo "\n";}
+							DBG::log([ 'msg'=>">>> loop({$itemKey}) REF item[{$itemKey}][{$fldName}]", '$item'=>$item[$fldName] ]);
 							if (1 == count($item[$fldName])) {
 								$xlink = $item[$fldName][0]['xlink'];
 								$xlinkParts = explode(':', $xlink);

+ 2 - 2
SE/se-lib/Core/Database/Mysql.php

@@ -50,10 +50,10 @@ class Core_Database_Mysql extends Core_Database {
 	function query( $query, $msg = 'Query ERROR.' ) {
 		$null = null;
 		if (!$this->_conn) { return $null; }
-		DBG::_('DBG_SQL', '>4', 'sql', $query, __CLASS__, __FUNCTION__, __LINE__);
+		DBG::log($query, 'sql');
 		$res = mysql_query($query, $this->_conn);
 		if (!$res) {
-			DBG::_('DBG_SQL', '>1', 'SQL QUERY FAILED:', mysql_error($this->_conn), __CLASS__, __FUNCTION__, __LINE__);
+			DBG::log("SQL QUERY FAILED: " . mysql_error($this->_conn));
 			$this->_set_error('SQL QUERY FAILED: '.mysql_error($this->_conn));
 			return $null;
 		}

+ 3 - 1
SE/se-lib/Data_Source.php

@@ -2,6 +2,7 @@
 
 Lib::loadClass('SqlQueryWhereBuilder');
 Lib::loadClass('ParseOgcFilter');
+Lib::loadClass('DBG');
 
 /**
  * API:
@@ -657,6 +658,7 @@ class Data_Source {
 
 	public function getItems($params = array()) {
 		$primaryKeyField = $this->getPrimaryKeyField();
+		DBG::log("Data_Source::getItems - \$primaryKeyField({$primaryKeyField})");
 		$items = array();
 		$sql = new stdClass();
 		$sql->_cols = V::get('cols', null, $params);
@@ -715,7 +717,7 @@ class Data_Source {
 			{$sql->orderBy}
 			limit {$sql->limit} offset {$sql->offset}
 		";
-		DBG::_('DBG_DS', '>2', "sql", $sql, __CLASS__, __FUNCTION__, __LINE__);
+		DBG::log([ 'msg'=>"Data_Source::getItems - \$sql", '$sql'=>$sql ]);
 		$res = $this->_db->query($sql->query);
 		while ($r = $this->_db->fetch($res)) {
 			$items[$r->{$primaryKeyField}] = $r;

+ 7 - 1
SE/se-lib/Route/Debug.php

@@ -28,6 +28,12 @@ class Route_Debug extends RouteBase {
     UI::gora();
     UI::menu();
     UI::setTitle("Debug");
+    if (!empty($_POST)) {
+      UI::alert('info', "is POST - history.pushState");
+      echo UI::h('script', [], "
+        history.replaceState(null, 'Debug', window.location.href);
+      ");
+    }
     try {
       echo UI::h('h1', [], [
         "Debug ",
@@ -219,7 +225,7 @@ class Route_Debug extends RouteBase {
                 'title' => htmlspecialchars( ('sql' == $dbg['type'] && is_string($dbg['log'])) ? $dbg['log'] : var_export($dbg['log'], true) ),
                 'onClick' => "return p5DBG__showLogTrace(this, event)",
                 'style' => "cursor:pointer"
-              ], substr(htmlspecialchars(json_encode($dbg['log'])), 0, 100) . ' ...'
+              ], str_replace(array('\n', '\t'), ' ', substr(htmlspecialchars(json_encode($dbg['log'])), 0, 100)) . ' ...'
             ),
             'trace' => UI::h('div', [
                 'title' => htmlspecialchars($dbg['trace']),