Max F 5 жил өмнө
parent
commit
3c3001312e

+ 3 - 3
src/App/Middlewares/DebugBar.php

@@ -9,9 +9,9 @@ use \DebugBar\DataCollector\TimeDataCollector;
 use \KarmaFW\App;
 use \KarmaFW\Http\Request;
 use \KarmaFW\Http\Response;
-use \KarmaFW\Database\Sql\SqlDbCollector;
-use \KarmaFW\Lib\KarmaMessagesCollector;
-//use \KarmaFW\Templates\PhpTemplateCollector;
+use \KarmaFW\App\Middlewares\DebugBar\SqlDbCollector;
+use \KarmaFW\App\Middlewares\DebugBar\KarmaMessagesCollector;
+//use \KarmaFW\App\Middlewares\DebugBar\PhpTemplateCollector;
 
 
 class DebugBar

+ 8 - 7
src/Lib/KarmaMessagesCollector.php → src/App/Middlewares/DebugBar/KarmaMessagesCollector.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace KarmaFW\Lib;
+namespace KarmaFW\App\Middlewares\DebugBar;
 
 use \DebugBar\DataCollector\MessagesCollector;
 
@@ -13,13 +13,14 @@ class KarmaMessagesCollector extends MessagesCollector
 	public function addMessage($message, $label = 'info', $isString = true)
 	{
 		parent::addMessage($message, $label, $isString);
-		return $this->messages[ count($this->messages) - 1 ];
+		return count($this->messages) - 1;
 	}
 
-	public function updateMessage($messageObj, $message)
+	public function updateMessage($message_idx, $message='')
 	{
         $messageText = $message;
         $messageHtml = null;
+
         if (!is_string($message)) {
             // Send both text and HTML representations; the text version is used for searches
             $messageText = $this->getDataFormatter()->formatVar($message);
@@ -28,10 +29,10 @@ class KarmaMessagesCollector extends MessagesCollector
             }
             $isString = false;
         }
-        
-        $messageObj['message'] = $messageText;
-        $messageObj['message_html'] = $messageHtml;
-        $messageObj['is_string'] = $isString;
+
+        $this->messages[$message_idx]['message'] = $messageText;
+        $this->messages[$message_idx]['message_html'] = $messageHtml;
+        $this->messages[$message_idx]['is_string'] = $isString;
 	}
 
 }

+ 1 - 1
src/Templates/PhpTemplateCollector.php → src/App/Middlewares/DebugBar/PhpTemplateCollector.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace KarmaFW\Templates;
+namespace KarmaFW\App\Middlewares\DebugBar;
 
 use \DebugBar\DataCollector\DataCollector;
 use \DebugBar\DataCollector\Renderable;

+ 17 - 2
src/Database/Sql/SqlDbCollector.php → src/App/Middlewares/DebugBar/SqlDbCollector.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace KarmaFW\Database\Sql;
+namespace KarmaFW\App\Middlewares\DebugBar;
 
 use \DebugBar\DataCollector\DataCollector;
 use \DebugBar\DataCollector\Renderable;
@@ -13,6 +13,9 @@ class SqlDbCollector extends DataCollector implements Renderable, AssetProvider
 {
 	protected $sql_queries = [];
 	protected $totalExecTime = 0;
+    protected $total_memory = 0;
+    protected $max_memory = 0;
+    protected $nb_failed_statements = 0;
 
 
     public function collect()
@@ -20,8 +23,13 @@ class SqlDbCollector extends DataCollector implements Renderable, AssetProvider
 	    return [
 	        'nb_statements' => count($this->sql_queries),
 	        'accumulated_duration' => $this->totalExecTime,
-	        'accumulated_duration_str' => round($this->totalExecTime, 5),
+	        'accumulated_duration_str' => round($this->totalExecTime, 4),
 	        'statements' => $this->sql_queries,
+            'nb_failed_statements' => $this->nb_failed_statements,
+            'memory_usage' => $this->total_memory,
+            'memory_usage_str' => round($this->total_memory/1000000, 1) . " Mo",
+            'peak_memory_usage' => $this->max_memory,
+            'peak_memory_usage_str' => round($this->max_memory/1000000, 1) . " Mo",
 	    ];
     }
 
@@ -35,6 +43,13 @@ class SqlDbCollector extends DataCollector implements Renderable, AssetProvider
     {
     	$this->sql_queries[] = $query;
     	$this->totalExecTime += $query['duration'];
+
+        $this->total_memory += $query['memory'];
+        $this->max_memory = max($this->max_memory, $query['memory']);
+
+        if ($query['is_success'] === false) {
+            $this->nb_failed_statements += 1;
+        }
     }
 
 

+ 1 - 1
src/App/Middlewares/ErrorHandler.php

@@ -34,7 +34,7 @@ class ErrorHandler
         try {
             $response = $next($request, $response);
 
-        } catch (\Throwable $e) {
+        } catch (\Exception $e) {
             $error_code = $e->getCode();
             $error_message = $e->getMessage();
 

+ 1 - 1
src/App/Middlewares/UrlRouter.php

@@ -51,7 +51,7 @@ class UrlRouter
 
 			$response = $next($request, $response);
 
-		} catch (\Throwable $e) {
+		} catch (\Exception $e) {
 			$error_code = $e->getCode();
 			$error_message = $e->getMessage();
 

+ 27 - 2
src/Database/Sql/SqlQuery.php

@@ -130,7 +130,12 @@ class SqlQuery
 			$_query = "select 1 from ( select 1 ) tmp where 0";
 		}
 
+		$mem_start = memory_get_usage();
+
 		$rs = $this->db->getDriver()->execute($_query);
+
+		$mem_end = memory_get_usage();
+		$memory_used = $mem_end - $mem_start;
 		//pre($rs);
 
 		$ts_end = microtime(true);
@@ -146,11 +151,31 @@ class SqlQuery
 			//$debugbar['sql']->addMessage( preg_replace('/\s+/', ' ', $query) );
 			
 			if (isset($debugbar['sql_queries'])) {
+				$error_code = 0;
+				$error_msg = null;
+				$is_success = true;
+				if ($rs instanceOf SqlResultSetError) {
+					$is_success = false;
+					$error_code = $rs->getErrorCode();
+					$error_msg = $rs->getErrorMessage();
+				}
+
+
 				$debugbar['sql_queries']->addQuery([
 					'sql' => preg_replace('/\s+/', ' ', $query),
 					'duration' => $this->duration,
-					//'nb_rows' => 'n/a',
-					'duration_str' => round($this->duration, 5),
+					'duration_str' => round($this->duration, 4) . " sec.",
+					'row_count' => $rs->getRowsCount(),
+					//'stmt_id' => null,
+					//'prepared_stmt' => null,
+					'params' => $params,
+					'memory' => $memory_used,
+					'memory_str' => round($memory_used/1000000, 1) . "Mo",
+					'end_memory' => $mem_end,
+					'end_memory_str' => round($mem_end/1000000, 1) . "Mo",
+					'is_success' => $is_success,
+					'error_code' => $error_code,
+					'error_message' => $error_msg,
 				]);
 			}
 			

+ 4 - 3
src/Templates/PhpTemplate.php

@@ -173,7 +173,7 @@ class PhpTemplate
 			if (isset($debugbar['templates'])) {
 				//$debugbar['templates']->info($tpl);
 
-				$debugbar_message = $debugbar['templates']->addMessage(['tpl' => $tpl]);
+				$debugbar_message_idx = $debugbar['templates']->addMessage(['tpl' => $tpl]);
 			}
 		}
 
@@ -250,8 +250,9 @@ class PhpTemplate
 		$ts_end = microtime(true);
 		$duration = $ts_end - $ts_start;
 
-		if (! empty($debugbar_message)) {
-			$debugbar['templates']->updateMessage($debugbar_message, [
+		if (! is_null($debugbar_message_idx)) {
+
+			$debugbar['templates']->updateMessage($debugbar_message_idx, [
 				'tpl' => $tpl,
 				'layout' => $layout_old,
 				'content_length' => strlen($content),