Skip to content

Commit 865eebd

Browse files
committed
Merge pull request #144 from Satsume/master
Added the ability to clear the output buffer before setting the response
2 parents 07cf9dd + e107c02 commit 865eebd

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

config/module.config.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
),
2323
),
2424
'asset_manager' => array(
25+
'clear_output_buffer' => true,
2526
'resolvers' => array(
2627
'AssetManager\Resolver\MapResolver' => 3000,
2728
'AssetManager\Resolver\ConcatResolver' => 2500,

src/AssetManager/Service/AssetManager.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,14 @@ public function setAssetOnResponse(ResponseInterface $response)
155155
}
156156
// @codeCoverageIgnoreEnd
157157

158+
if (!empty($this->config['clear_output_buffer']) && $this->config['clear_output_buffer']) {
159+
// Only clean the output buffer if it's turned on and something
160+
// has been buffered.
161+
if (ob_get_length() > 0) {
162+
ob_clean();
163+
}
164+
}
165+
158166
$response->getHeaders()
159167
->addHeaderLine('Content-Transfer-Encoding', 'binary')
160168
->addHeaderLine('Content-Type', $mimeType)

tests/AssetManagerTest/Service/AssetManagerTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,29 @@ public function testResolvesToAssetNotFound()
423423
$this->assertFalse($resolvesToAsset);
424424
}
425425

426+
public function testClearOutputBufferInSetAssetOnResponse()
427+
{
428+
$this->expectOutputString(file_get_contents(__FILE__));
429+
430+
echo "This string would definately break any image source.\n";
431+
echo "This one would make it even worse.\n";
432+
echo "They all should be gone soon...\n";
433+
434+
$assetFilterManager = new AssetFilterManager();
435+
$assetCacheManager = $this->getAssetCacheManagerMock();
436+
$mimeResolver = new MimeResolver;
437+
$assetManager = new AssetManager($this->getResolver(), array('clear_output_buffer' => true));
438+
439+
$assetFilterManager->setMimeResolver($mimeResolver);
440+
$assetManager->setAssetFilterManager($assetFilterManager);
441+
$assetManager->setAssetCacheManager($assetCacheManager);
442+
$assetManager->resolvesToAsset($this->getRequest());
443+
444+
$response = $assetManager->setAssetOnResponse(new Response);
445+
446+
echo $response->getContent();
447+
}
448+
426449
/**
427450
* @return string
428451
*/

0 commit comments

Comments
 (0)