PHP is a popular website development language. However, writing websites in pure PHP is difficult. If you write a web application in pure PHP, you'll have to organize your code in some way, collect and validate user input, implement support of user authentication and access control, manage database, test your code and so on. As your site grows in size, it becomes more and more difficult to develop the code in consistent manner. Each developer in your team applies his/her favourite custom coding styles and patterns. The code becomes overcomplicated, slow and difficult to support. You merge all your code in a single giant script with no separation of concerns. You have to reinvent the wheel many times and that causes security problems. Moreover, when you switch to the development of a new site you will notice that a large portion of the code you have already written for the old website can be used again with small modifications. This code can be separated in a library. This is how frameworks appeared.
A framework is some kind of a library, a piece of software (also written in PHP) providing web developers with code base and consistent standardized ways of creating web applications.
Zend Framework 3 is a free and open-source PHP framework. Its development is guided (and sponsored) by Zend Technologies, who is also known as the vendor of the PHP language. The first version (Zend Framework 1) was released in 2007; Zend Framework 2, the second version of this software, was released in September 2012. Zend Framework 3 (or shortly ZF3) was released in June 2016.
Zend Framework 3 provides you with the following capabilities:
Develop your website much faster than when you write it in pure PHP. ZF3 provides many components that can be used as a code base for creating your website.
Easier cooperation with other members of your site building team. Model-View-Controller pattern used by ZF3 allows to separate business logic and presentation layer of your website, making its structure consistent and maintainable.
Scale your website with the concept of modules. ZF3 uses the term module, allowing to separate decoupled site parts, thus allowing to reuse models, views, controllers and assets of your website in other works.
Accessing database in an object-oriented way. Instead of directly interacting with the database using SQL queries, you can use Doctrine Object-Relational Mapping (ORM) to manage the structure and relationships between your data. With Doctrine you map your database table to a PHP class (also called an entity class) and a row from that table is mapped to an instance of that class. Doctrine allows to abstract of database type and make code easier to understand.
Write secure web sites with ZF3-provided components like form input filters and validators, HTML output escapers and cryptography algorithms, human check (Captcha) and Cross-Site Request Forgery (CSRF) form elements.