Sprinkles, what are they?

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 framework, 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.

You app can have as many sprinkles as you want. A sprinkle could even depend on another sprinkle, creating a nesting doll of sprinkles. Maybe your first app could become a sprinkle in someone else's app!

Bundled Sprinkles

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.

Remove all sprinkles and the Framework can be used by itself to create a very basic Slim/Symfony Console application with no database, template, etc. !

Core Sprinkle

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.

Account Sprinkle

The Account sprinkle handles user modeling and authentication, user groups, and roles and 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.

Admin 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 & AdminLTE sprinkles.

AdminLTE Theme

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.