import 'package:platform_core/core.dart'; import 'package:platform_core/http.dart'; import 'package:platform_support/providers.dart'; /// Example service that will be provided class ExampleService { final String message; ExampleService(this.message); void printMessage() { print(message); } } /// Example service provider that demonstrates the basic features class ExampleServiceProvider extends ServiceProvider { @override void register() { super.register(); // Register a singleton service singleton(ExampleService('Hello from ExampleService!')); // Register an event listener listen('app.started', (req, res) { var service = make(); service.printMessage(); return true; }); } @override List provides() => ['example-service']; } /// Example deferred service provider that demonstrates lazy loading class DeferredExampleProvider extends DeferredServiceProvider { @override void register() { super.register(); singleton(ExampleService('Hello from DeferredService!')); } @override List provides() => ['deferred-service']; @override List dependencies() => ['example-service']; } void main() async { // Create the application var app = Application(); // Register the service providers app.registerProvider(ExampleServiceProvider()); app.registerProvider(DeferredExampleProvider()); // The ExampleServiceProvider will be booted immediately // The DeferredExampleProvider will only be booted when needed // Later, when we need the deferred service: await app.resolveProvider('deferred-service'); // Create and start the HTTP server var http = PlatformHttp(app); await http.startServer('127.0.0.1', 3000); }