1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <?php
/*
 * This file is part of the ICanBoogie package.
 *
 * (c) Olivier Laviale <olivier.laviale@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace ICanBoogie;
/**
 * Returns the current event collection.
 *
 * **Note:** A provider for a new event collection is defined is none was defined yet.
 *
 * @return EventCollection
 */
function get_events()
{
    $provider = EventCollectionProvider::defined();
    if (!$provider)
    {
        $provider = function() {
            static $events;
            return $events ?: $events = new EventCollection;
        };
        EventCollectionProvider::define($provider);
    }
    return $provider();
}