Skip to content

Commit

Permalink
ENH Do not rely on flush variable
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Oct 22, 2024
1 parent 662ac9d commit b1b469a
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 14 deletions.
17 changes: 7 additions & 10 deletions src/Control/Middleware/URLSpecialsMiddleware/FlushScheduler.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace SilverStripe\Control\Middleware\URLSpecialsMiddleware;

use SilverStripe\Core\BaseKernel;
use SilverStripe\Core\Kernel;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Core\Startup\ScheduledFlushDiscoverer;
Expand All @@ -28,15 +27,13 @@ trait FlushScheduler
*/
public function scheduleFlush(HTTPRequest $request)
{
$flush = array_key_exists('flush', $request->getVars() ?? []) || ($request->getURL() === 'dev/build');

$kernel = Injector::inst()->get(Kernel::class);
if (!$flush || (method_exists($kernel, 'isFlushed') && $kernel->isFlushed())) {
return false;
if ($request->getURL() === 'dev/build') {
$kernel = Injector::inst()->get(Kernel::class);
if (!$kernel->isFlushed()) {
ScheduledFlushDiscoverer::scheduleFlush($kernel);
return true;
}
}

ScheduledFlushDiscoverer::scheduleFlush($kernel);

return true;
return false;
}
}
1 change: 0 additions & 1 deletion src/Core/Startup/RequestFlushDiscoverer.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ public function __construct(HTTPRequest $request, $env)
/**
* Checks whether the request contains any flush indicators
*
*
* @return null|bool flush or don't care
*/
protected function lookupRequest()
Expand Down
5 changes: 3 additions & 2 deletions src/Dev/Install/DatabaseAdapterRegistry.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Psr\SimpleCache\CacheInterface;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Core\Flushable;
use SilverStripe\Core\Kernel;

/**
* This class keeps track of the available database adapters
Expand Down Expand Up @@ -155,8 +156,8 @@ public static function autoconfigure(&$config = null)
*/
protected static function getConfigureDatabasePaths(): array
{
// autoconfigure() will get called before flush() on ?flush, so manually flush just to ensure no weirdness
if (isset($_GET['flush'])) {
// autoconfigure() will get called before flush() on flush, so manually flush just to ensure no weirdness
if (Injector::inst()->get(Kernel::class)->isFlushed()) {
static::flush();
}
try {
Expand Down
4 changes: 3 additions & 1 deletion src/View/SSViewer_FromString.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use SilverStripe\Core\Config\Config;
use SilverStripe\ORM\FieldType\DBField;
use SilverStripe\Dev\Deprecation;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Core\Kernel;

/**
* Special SSViewer that will process a template passed as a string, rather than a filename.
Expand Down Expand Up @@ -60,7 +62,7 @@ public function process($item, $arguments = null, $scope = null)
$hash = sha1($this->content ?? '');
$cacheFile = TEMP_PATH . DIRECTORY_SEPARATOR . ".cache.$hash";

if (!file_exists($cacheFile ?? '') || isset($_GET['flush'])) {
if (!file_exists($cacheFile ?? '') || Injector::inst()->get(Kernel::class)->isFlushed()) {
$content = $this->parseTemplateContent($this->content, "string sha1=$hash");
$fh = fopen($cacheFile ?? '', 'w');
fwrite($fh, $content ?? '');
Expand Down

0 comments on commit b1b469a

Please sign in to comment.