Important: This module is for developers only, it provides facilities developers can use in custom modules. It does not add anything to a website on its own. Only install it if another module asks for it.
The Controls module provides a plugin API similar in some respects to the CTools plugin architecture but far less versatile or configurable. Yes, you read right - it is less versatile and configurable and there's a reason for that: It's lightweight and designed specifically for developers rather than "configurers". It is easier to set up and use than CTools plugins.
What it does
Nothing on its own. It provides an API for the creation and access to "controls" and a system for callbacks to functions belonging to controls. It also helps to keep code out of the way until needed, this means it helps to keep the memory footprint of an application down.
Initialisation
The Controls module does nothing until it is asked by another module to deliver one or more controls using the controls_get() function. It's important to understand that the Controls module neither knows nor cares what controls and control groups are available, what modules are responding, or what is in a control; it just handles and caches controls as abstract arrays.