Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
FrameworkServiceProvider
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5/**
6 * Fast Forward Framework — a lightweight PHP framework for building modern web applications with a simple and elegant API.
7 *
8 * This file is part of fast-forward/framework project.
9 *
10 * @author   Felipe Sayão Lobato Abreu <github@mentordosnerds.com>
11 * @license  https://opensource.org/licenses/MIT MIT License
12 *
13 * @see      https://php-fast-forward.github.io/framework/
14 * @see      https://github.com/php-fast-forward/framework
15 * @see      https://github.com/php-fast-forward/framework/issues
16 * @see      https://datatracker.ietf.org/doc/html/rfc2119
17 */
18
19namespace FastForward\Framework\ServiceProvider;
20
21use FastForward\Clock\ServiceProvider\ClockServiceProvider;
22use FastForward\Container\ServiceProvider\AggregateServiceProvider;
23use FastForward\EventDispatcher\ServiceProvider\EventDispatcherServiceProvider;
24use FastForward\Http\ServiceProvider\HttpServiceProvider;
25
26/**
27 * Aggregates core framework service providers into a unified service provider.
28 *
29 * This class MUST be used to encapsulate all foundational service providers
30 * required to initialize the application container.
31 *
32 * This class SHALL implement the ServiceProviderInterface and MUST delegate
33 * its service discovery responsibilities to an internal AggregateServiceProvider.
34 *
35 * @see AggregateServiceProvider for composing multiple service providers into one
36 * @see HttpServiceProvider for HTTP handling and middleware support
37 * @see EventDispatcherServiceProvider for PSR-14 and Symfony-compatible event dispatching
38 * @see ClockServiceProvider for time and scheduling utilities
39 */
40 class FrameworkServiceProvider extends AggregateServiceProvider
41{
42    /**
43     * Creates a new FrameworkServiceProvider instance.
44     *
45     * This constructor MUST initialize the aggregate service provider using
46     * a composition of essential framework service providers.
47     */
48    public function __construct()
49    {
50        parent::__construct(
51            new HttpServiceProvider(),
52            new EventDispatcherServiceProvider(),
53            new ClockServiceProvider(),
54        );
55    }
56}