Files
roi-theme/wp-content/plugins/ajax-search-pro/src/server/Misc/OutputBuffer.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

46 lines
1.0 KiB
PHP
Executable File

<?php /** @noinspection HttpUrlsUsage */
namespace WPDRMS\ASP\Misc;
use WPDRMS\ASP\Patterns\SingletonTrait;
class OutputBuffer {
use SingletonTrait;
private $found = false;
function obStart() {
ob_start(array($this, 'obCallback'));
}
function obCallback($buffer, $phase) {
if ($phase & PHP_OUTPUT_HANDLER_FINAL || $phase & PHP_OUTPUT_HANDLER_END) {
// Hook into this to change the buffer
return apply_filters('asp_ob_end', $buffer);
}
return $buffer;
}
function obClose(): bool {
$handlers = ob_list_handlers();
$callback = self::class . '::obCallback';
$found = in_array($callback, $handlers);
if ( $found ) {
for ($i = count($handlers) - 1; $i >= 0; $i--) {
ob_end_flush();
if ($handlers[$i] === $callback) {
break;
}
}
}
// $this->found = found is not good. If this function is triggered multiple times, then may override "true" to "false"
$this->found = $found == true ? true : $this->found;
return $found;
}
function obFound(): bool {
return $this->found;
}
}