Sprinkles are an integral part of UserFrosting. We'll see in detail how they work in a later chapter, but for now it's important to have an overview.
Unlike dependencies, which are usually meant to be used across many different frameworks, sprinkles are meant to integrate directly into UserFrosting and interact together. Sprinkles could be compared to "plugins", but they're so much more.
Actually, your own project, created from the App Skeleton, is a sprinkle, even if it's not located in the /vendor
directory. The directory structure is one part, but what really makes a sprinkle a sprinkle is its recipe, which we'll see later. Your project will actually be the main sprinkle, while any sprinkles it uses will be dependent sprinkles.
Your app can have as many sprinkles as you want. A sprinkle could even depend on another sprinkle, creating a nested doll of sprinkles. Maybe your first app could become a sprinkle in someone else's app!
A default UserFrosting installation comes with four sprinkles, each of which will be downloaded by Composer in the /vendor
directory during installation.
Because UserFrosting is modular, you can decide to use these bundled sprinkles or not. You may or may not need the functionality each provides in your app. We'll go over how to enable and disable them later. For now, let's focus on their features.
The Core contains most of the "heavy lifting" PHP code. It provides all the necessary services for databases, templating, error handling, mail support, request throttling, and more.
The Account sprinkle handles user modeling and authentication, user groups, and roles & access control. It contains the routes, templates, and controllers needed to implement pages for registration, password resetting, login, and more.
The Account sprinkle depends on the Core sprinkle.
The Admin sprinkle contains the routes and controllers to implement the administrative user management interface, as well as the group, role, and permission management interfaces.
The Admin sprinkle depends on the Core, Account and AdminLTE sprinkles.
The AdminLTE theme sprinkle contains all the twig files and frontend assets to implement the AdminLTE template.
The AdminLTE sprinkle depends on the Core and Account sprinkles.