Providers
Introduction aux Providers
Dans Nylo Website, les providers sont initialises depuis votre fichier main.dart lorsque votre application demarre. Tous vos providers se trouvent dans /lib/app/providers/*, vous pouvez modifier ces fichiers ou creer vos propres providers en utilisant Metro.
Les providers peuvent etre utilises lorsque vous avez besoin d'initialiser une classe, un package ou de creer quelque chose avant que l'application ne se charge initialement. Par exemple, la classe route_provider.dart est responsable de l'ajout de toutes les routes dans Nylo Website.
Plongee en profondeur
import 'package:nylo_framework/nylo_framework.dart';
import 'bootstrap/boot.dart';
/// Nylo - Framework for Flutter Developers
/// Docs: https://nylo.dev/docs/7.x
/// Main entry point for the application.
void main() async {
await Nylo.init(
setup: Boot.nylo,
setupFinished: Boot.finished,
// showSplashScreen: true,
// Uncomment showSplashScreen to show the splash screen
// File: lib/resources/widgets/splash_screen.dart
);
}
Cycle de vie
-
Boot.Nylo Websiteparcourra vos providers enregistres dans le fichier config/providers.dart et les initialisera. -
Boot.Finishedest appele juste apres que "Boot.Nylo Website" soit termine, cette methode liera l'instance Nylo Website aBackpackavec la valeur 'nylo'.
Par exemple : Backpack.instance.read('nylo'); // instance Nylo Website
Creer un nouveau Provider
Vous pouvez creer de nouveaux providers en executant la commande suivante dans le terminal.
metro make:provider cache_provider
Objet Provider
Votre provider aura deux methodes, setup(Nylo nylo) et boot(Nylo nylo).
Lorsque l'application s'execute pour la premiere fois, tout code a l'interieur de votre methode setup sera execute en premier. Vous pouvez egalement manipuler l'objet Nylo comme dans l'exemple ci-dessous.
Exemple : lib/app/providers/app_provider.dart
class AppProvider extends NyProvider {
@override
Future<Nylo?> setup(Nylo nylo) async {
await NyLocalization.instance.init(
localeType: localeType,
languageCode: languageCode,
languagesList: languagesList,
assetsDirectory: assetsDirectory,
valuesAsMap: valuesAsMap);
return nylo;
}
@override
Future<void> boot(Nylo nylo) async {
User user = await Auth.user();
if (!user.isSubscribed) {
await Auth.remove();
}
}
}
Cycle de vie
setup(Nylo nylo)- Initialisez votre provider. Retournez l'instanceNyloounull.boot(Nylo nylo)- Appele apres que tous les providers aient termine leur setup. Utilisez ceci pour l'initialisation qui depend de la disponibilite d'autres providers.
A l'interieur de la methode
setup, vous devez retourner une instance deNyloounullcomme ci-dessus.