From 09248f2917316afbf825ca25e92fccd5ba94c67d Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 6 Sep 2014 13:28:47 -0600 Subject: [PATCH 1/4] Added barDump() to Debugger --- composer.json | 4 ++-- system/src/Grav/Common/Debugger.php | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 7a2e4cb20..82067afc3 100644 --- a/composer.json +++ b/composer.json @@ -13,8 +13,8 @@ "symfony/console": "~2.5", "symfony/event-dispatcher": "~2.5", "doctrine/cache": "~1.3", - "tracy/tracy": "~2.2", - "gregwar/image": "~2.0", + "tracy/tracy": "2.3.*@dev", + "gregwar/image": "~2.0", "ircmaxell/password-compat": "1.0.*", "mrclay/minify": "dev-master", "donatj/phpuseragentparser": "dev-master", diff --git a/system/src/Grav/Common/Debugger.php b/system/src/Grav/Common/Debugger.php index 3ffbd50b0..93aafee67 100644 --- a/system/src/Grav/Common/Debugger.php +++ b/system/src/Grav/Common/Debugger.php @@ -70,4 +70,9 @@ class Debugger { TracyDebugger::dump($var); } + + public static function barDump($var, $title = NULL, array $options = NULL) + { + TracyDebugger::barDump($var, $title, $options); + } } From 5667f8b0237000a4fa68b033ad6165eef69c3332 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 6 Sep 2014 13:29:56 -0600 Subject: [PATCH 2/4] Added shutddown event to flush buffer and set content length (tracy-safe) --- system/src/Grav/Common/Grav.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 07d548d75..edf05cd4c 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -141,12 +141,13 @@ class Grav extends Container // Set the header type $this->header(); + Debugger::barDump($this['plugins']); + echo $this->output; - ob_end_flush(); - flush(); - $this->fireEvent('onOutputRendered'); + + register_shutdown_function([$this, 'shutdown']); } /** @@ -209,4 +210,15 @@ class Grav extends Container $events = $this['events']; return $events->dispatch($eventName, $event); } + + /** + * Set the final content length for the page and flush the buffer + * + */ + public function shutdown() + { + header('Content-length: ' . ob_get_length()); + ob_end_flush(); + flush(); + } } From cd5707f2d24ad70df2bace92d1b40e2008738c1a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 6 Sep 2014 13:31:34 -0600 Subject: [PATCH 3/4] removed barDump() test :) --- system/src/Grav/Common/Grav.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index edf05cd4c..faf71398a 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -141,8 +141,6 @@ class Grav extends Container // Set the header type $this->header(); - Debugger::barDump($this['plugins']); - echo $this->output; $this->fireEvent('onOutputRendered'); From 2a43983ede68602b5e45083ccd9f8864e4a00459 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 6 Sep 2014 14:32:21 -0600 Subject: [PATCH 4/4] added onShutdown event that fires after the connection has been closed (background processing) --- system/src/Grav/Common/Grav.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index faf71398a..476da4ac1 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -215,8 +215,18 @@ class Grav extends Container */ public function shutdown() { + set_time_limit(0); + ignore_user_abort(true); + header('Content-length: ' . ob_get_length()); + header("Connection: close\r\n"); + ob_end_flush(); + ob_flush(); flush(); + + session_write_close(); + + $this->fireEvent('onShutdown'); } }