From f4a6410cb7cc22b61b231f66ddecf51140c1512c Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sat, 18 Mar 2023 19:59:16 +0100 Subject: [PATCH 1/5] Add configuration option to control if the server should save pages --- config/hyde.php | 1 + packages/framework/config/hyde.php | 1 + 2 files changed, 2 insertions(+) diff --git a/config/hyde.php b/config/hyde.php index 37047628aa6..a56f352c99c 100644 --- a/config/hyde.php +++ b/config/hyde.php @@ -406,6 +406,7 @@ 'port' => env('SERVER_PORT', 8080), 'host' => env('SERVER_HOST', 'localhost'), 'dashboard' => env('SERVER_DASHBOARD', true), + 'save_pages' => true, ], /* diff --git a/packages/framework/config/hyde.php b/packages/framework/config/hyde.php index 37047628aa6..a56f352c99c 100644 --- a/packages/framework/config/hyde.php +++ b/packages/framework/config/hyde.php @@ -406,6 +406,7 @@ 'port' => env('SERVER_PORT', 8080), 'host' => env('SERVER_HOST', 'localhost'), 'dashboard' => env('SERVER_DASHBOARD', true), + 'save_pages' => true, ], /* From 33cd64c961a03d03ccfaeba7113e28293a20387d Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sat, 18 Mar 2023 19:59:41 +0100 Subject: [PATCH 2/5] Update PageRouter to return compiled view directly depending on config --- packages/realtime-compiler/src/Routing/PageRouter.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/realtime-compiler/src/Routing/PageRouter.php b/packages/realtime-compiler/src/Routing/PageRouter.php index 02d1c0fc014..f46a39cfe04 100644 --- a/packages/realtime-compiler/src/Routing/PageRouter.php +++ b/packages/realtime-compiler/src/Routing/PageRouter.php @@ -12,6 +12,7 @@ use Hyde\RealtimeCompiler\Concerns\SendsErrorResponses; use Hyde\RealtimeCompiler\Http\DashboardController; use Hyde\RealtimeCompiler\Http\HtmlResponse; +use Hyde\Hyde; /** * Handle routing for a web page request. @@ -63,7 +64,13 @@ protected function getHtml(HydePage $page): string return DashboardController::renderIndexPage($page); } - return file_get_contents(StaticPageBuilder::handle($page)); + if (config('hyde.server.save_pages')) { + return file_get_contents(StaticPageBuilder::handle($page)); + } else { + Hyde::shareViewData($page); + + return $page->compile(); + } } public static function handle(Request $request): Response From 5ff7163e41682a9b37f9566eafb7f4f5a3b91cae Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sat, 18 Mar 2023 19:59:50 +0100 Subject: [PATCH 3/5] Update controller method to match router --- .../realtime-compiler/src/Http/DashboardController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/realtime-compiler/src/Http/DashboardController.php b/packages/realtime-compiler/src/Http/DashboardController.php index 28587068c52..2ce853f56e8 100644 --- a/packages/realtime-compiler/src/Http/DashboardController.php +++ b/packages/realtime-compiler/src/Http/DashboardController.php @@ -66,7 +66,13 @@ public static function enabled(): bool // This method is called from the PageRouter and allows us to serve a dynamic welcome page public static function renderIndexPage(HydePage $page): string { - $contents = file_get_contents(StaticPageBuilder::handle($page)); + if (config('hyde.server.save_pages')) { + $contents = file_get_contents(StaticPageBuilder::handle($page)); + } else { + Hyde::shareViewData($page); + + $contents = $page->compile(); + } // If the page is the default welcome page we inject dashboard components if (str_contains($contents, 'This is the default homepage')) { From fe6af9e98703e8fe1976582859a474b6f192feb4 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sat, 18 Mar 2023 20:08:00 +0100 Subject: [PATCH 4/5] Rename added config option to save_preview instead of save_pages --- config/hyde.php | 2 +- packages/framework/config/hyde.php | 2 +- packages/realtime-compiler/src/Http/DashboardController.php | 2 +- packages/realtime-compiler/src/Routing/PageRouter.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/hyde.php b/config/hyde.php index a56f352c99c..d744efa2e8e 100644 --- a/config/hyde.php +++ b/config/hyde.php @@ -406,7 +406,7 @@ 'port' => env('SERVER_PORT', 8080), 'host' => env('SERVER_HOST', 'localhost'), 'dashboard' => env('SERVER_DASHBOARD', true), - 'save_pages' => true, + 'save_preview' => true, ], /* diff --git a/packages/framework/config/hyde.php b/packages/framework/config/hyde.php index a56f352c99c..d744efa2e8e 100644 --- a/packages/framework/config/hyde.php +++ b/packages/framework/config/hyde.php @@ -406,7 +406,7 @@ 'port' => env('SERVER_PORT', 8080), 'host' => env('SERVER_HOST', 'localhost'), 'dashboard' => env('SERVER_DASHBOARD', true), - 'save_pages' => true, + 'save_preview' => true, ], /* diff --git a/packages/realtime-compiler/src/Http/DashboardController.php b/packages/realtime-compiler/src/Http/DashboardController.php index 2ce853f56e8..6d48fdad9ef 100644 --- a/packages/realtime-compiler/src/Http/DashboardController.php +++ b/packages/realtime-compiler/src/Http/DashboardController.php @@ -66,7 +66,7 @@ public static function enabled(): bool // This method is called from the PageRouter and allows us to serve a dynamic welcome page public static function renderIndexPage(HydePage $page): string { - if (config('hyde.server.save_pages')) { + if (config('hyde.server.save_preview')) { $contents = file_get_contents(StaticPageBuilder::handle($page)); } else { Hyde::shareViewData($page); diff --git a/packages/realtime-compiler/src/Routing/PageRouter.php b/packages/realtime-compiler/src/Routing/PageRouter.php index f46a39cfe04..55cc5dbc5d0 100644 --- a/packages/realtime-compiler/src/Routing/PageRouter.php +++ b/packages/realtime-compiler/src/Routing/PageRouter.php @@ -64,7 +64,7 @@ protected function getHtml(HydePage $page): string return DashboardController::renderIndexPage($page); } - if (config('hyde.server.save_pages')) { + if (config('hyde.server.save_preview')) { return file_get_contents(StaticPageBuilder::handle($page)); } else { Hyde::shareViewData($page); From 3a3dc1f2df427db32d0e1b428cec287274939d3a Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sat, 18 Mar 2023 20:11:40 +0100 Subject: [PATCH 5/5] Update RELEASE_NOTES.md --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 33e9a3e6d90..0d10f163dc0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -5,7 +5,7 @@ This release is the first since the official release of HydePHP 1.0.0. It contains a number of bug fixes and improvements, but no breaking changes as the project has reached general availability and adheres to the semantic versioning backwards compatibility promise. ### Added -- for new features. +- Added a RealtimeCompiler config option to disable rendered pages being stored to disk in https://github.com/hydephp/develop/pull/1334 ### Changed - Updated discovery exception message to include the causing exception message in https://github.com/hydephp/develop/pull/1305