2014-08-16 02:51:17 +02:00
|
|
|
<?php
|
2016-06-15 06:03:16 +02:00
|
|
|
|
2016-08-19 00:51:35 +02:00
|
|
|
namespace SilverStripe\Control;
|
|
|
|
|
2016-06-15 06:03:16 +02:00
|
|
|
use SilverStripe\ORM\DataModel;
|
2016-08-19 00:51:35 +02:00
|
|
|
use SilverStripe\Core\ClassInfo;
|
|
|
|
|
2014-08-16 02:51:17 +02:00
|
|
|
/**
|
|
|
|
* Triggers a call to flush() on all implementors of Flushable.
|
|
|
|
*/
|
|
|
|
class FlushRequestFilter implements RequestFilter {
|
|
|
|
|
2015-11-13 23:44:49 +01:00
|
|
|
/**
|
|
|
|
* @inheritdoc
|
|
|
|
*
|
2016-09-09 08:43:05 +02:00
|
|
|
* @param HTTPRequest $request
|
2015-11-13 23:44:49 +01:00
|
|
|
* @param Session $session
|
|
|
|
* @param DataModel $model
|
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
2016-09-09 08:43:05 +02:00
|
|
|
public function preRequest(HTTPRequest $request, Session $session, DataModel $model) {
|
2014-10-30 10:51:05 +01:00
|
|
|
if(array_key_exists('flush', $request->getVars())) {
|
2016-08-19 00:51:35 +02:00
|
|
|
foreach(ClassInfo::implementorsOf('SilverStripe\\Core\\Flushable') as $class) {
|
2014-08-16 02:51:17 +02:00
|
|
|
$class::flush();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
2015-08-06 01:47:17 +02:00
|
|
|
}
|
2014-08-16 02:51:17 +02:00
|
|
|
|
2015-11-13 23:44:49 +01:00
|
|
|
/**
|
|
|
|
* @inheritdoc
|
|
|
|
*
|
2016-09-09 08:43:05 +02:00
|
|
|
* @param HTTPRequest $request
|
|
|
|
* @param HTTPResponse $response
|
2015-11-13 23:44:49 +01:00
|
|
|
* @param DataModel $model
|
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
2016-09-09 08:43:05 +02:00
|
|
|
public function postRequest(HTTPRequest $request, HTTPResponse $response, DataModel $model) {
|
2014-08-16 02:51:17 +02:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|