ZF3 developers believe that the framework should be a set of decoupled components with minimum dependencies on each other. This is how ZF3 is organized.
The idea was to let you use some selected ZF3 components alone, even if you write your site with another framework. This becomes even easier, keeping in mind that each component of ZF3 is a Composer-installable package, so you can easily install any ZF3-component together with its dependencies through a single command.
There are several "main" ZF3 components that are used (either explicitly or implicitly) in almost any web application:
Zend\EventManager component allows to send events and register listeners to react to them.
Zend\ModuleManager. In ZF3, every application consists of modules and this component contains
module loading functionality.
Zend\ServiceManager. This is the centralized registry of all services available in the application,
making it possible to access services from any point of the web site.
Zend\Http provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP)
Zend\Mvc. Support of Model-View-Controller pattern and separation of business logic from
Zend\View. Provides a system of helpers, output filters, and variable escaping. Used in
Zend\Form. Web form data collection, filtering, validation and rendering.
Zend\InputFilter. Provides an ability to define form data validation rules.
Zend\Filter. Provides a set of commonly used data filters, like string trimmer.
Zend\Validator. Provides a set of commonly used validators.