Dynamic Instantiation
means in CodeIgniter, components are loaded and routines are executed only when requested, rather than globally. All the variables, functions(Methods) are not static, they are dynamic.Loose Coupling
is the degree to which components of a system depend on each other. The less components depend on each other the more reusable and flexible the system becomes.Component Singularity
is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.