silverstripe-framework/src/Control/FlushRequestFilter.php

49 lines
1.0 KiB
PHP
Raw Normal View History

<?php
namespace SilverStripe\Control;
use SilverStripe\Core\Flushable;
use SilverStripe\ORM\DataModel;
use SilverStripe\Core\ClassInfo;
/**
* Triggers a call to flush() on all implementors of Flushable.
*/
2016-11-29 00:31:16 +01:00
class FlushRequestFilter implements RequestFilter
{
2016-11-29 00:31:16 +01:00
/**
* @inheritdoc
*
* @param HTTPRequest $request
* @param Session $session
* @param DataModel $model
*
* @return bool
*/
public function preRequest(HTTPRequest $request, Session $session, DataModel $model)
{
if (array_key_exists('flush', $request->getVars())) {
foreach (ClassInfo::implementorsOf(Flushable::class) as $class) {
2016-11-29 00:31:16 +01:00
$class::flush();
}
}
2016-11-29 00:31:16 +01:00
return true;
}
2016-11-29 00:31:16 +01:00
/**
* @inheritdoc
*
* @param HTTPRequest $request
* @param HTTPResponse $response
* @param DataModel $model
*
* @return bool
*/
public function postRequest(HTTPRequest $request, HTTPResponse $response, DataModel $model)
{
return true;
}
}