<?php
 
 
/**
 
 * This file is part of Aksara CMS, both framework and publishing
 
 * platform.
 
 *
 
 * @author     Aby Dahana <[email protected]>
 
 * @copyright  (c) Aksara Laboratory <https://aksaracms.com>
 
 * @license    MIT License
 
 *
 
 * This source file is subject to the MIT license that is bundled
 
 * with this source code in the LICENSE.txt file.
 
 *
 
 * When the signs is coming, those who don't believe at "that time"
 
 * have only two choices, commit suicide or become brutal.
 
 */
 
 
namespace Config;
 
 
use CodeIgniter\Events\Events;
 
use CodeIgniter\Exceptions\FrameworkException;
 
use CodeIgniter\HotReloader\HotReloader;
 
 
/*
 
 * --------------------------------------------------------------------
 
 * Application Events
 
 * --------------------------------------------------------------------
 
 * Events allow you to tap into the execution of the program without
 
 * modifying or extending core files. This file provides a central
 
 * location to define your events, though they can always be added
 
 * at run-time, also, if needed.
 
 *
 
 * You create code that can execute by subscribing to events with
 
 * the 'on()' method. This accepts any form of callable, including
 
 * Closures, that will be executed when the event is triggered.
 
 *
 
 * Example:
 
 *      Events::on('create', [$myInstance, 'myMethod']);
 
 */
 
 
Events::on('pre_system', static function () {
 
    if (ENVIRONMENT !== 'testing') {
 
        if (ini_get('zlib.output_compression')) {
 
            throw FrameworkException::forEnabledZlibOutputCompression();
 
        }
 
 
        while (ob_get_level() > 0) {
 
            ob_end_flush();
 
        }
 
 
        ob_start(static fn ($buffer) => $buffer);
 
    }
 
 
    /*
 
     * --------------------------------------------------------------------
 
     * Debug Toolbar Listeners.
 
     * --------------------------------------------------------------------
 
     * If you delete, they will no longer be collected.
 
     */
 
    if (CI_DEBUG && ! is_cli()) {
 
        Events::on('DBQuery', 'CodeIgniter\Debug\Toolbar\Collectors\Database::collect');
 
        Services::toolbar()->respond();
 
        // Hot Reload route - for framework use on the hot reloader.
 
        if (ENVIRONMENT === 'development') {
 
            Services::routes()->get('__hot-reload', static function () {
 
                (new HotReloader())->run();
 
            });
 
        }
 
    }
 
});
 
 
 |