Recap
Here is a recap of the terms defined within this article:
* An Environment is the sum of all resources, capabilities and settings that exist in a PHP process. This generally includes what extensions and ini settings are preset for the PHP process.
* A Library is collection of code that solves a less specific problem which is further defined by the libraries target audience and problem area.
* A Component is a collection of code that solves a more specific problem within a library.
* An Application is collection of code that solves a specific business problem. Ideally, applications consume libraries and components to facilitate quicker and more standardized development.
* A Module is a collection of code that solves a more specific atomic problem of the larger business problem. The sum of all modules within an application attempt the solve the larger business problem.
* MVC is a way to group code within both a module and application into a code base that facilitate a better separation of concerns.
Modules can contain components
Modules can be routable
Components do not contain resources (js, view scripts, non-php code, css)
Components are not routable
Modules can be MVC enabled
Components cannot be MVC enabled
Components are only code
Components solve more general code only problems
Modules solve more specific application problems
Components are elements of a library
Modules are elements of an application