This section describes the internal structure of eZ Publish by presenting an brief overview of the different software-layers of the system. eZ Publish is a complex, object oriented application written in the PHP language. The system consists of three major parts:
The following illustration shows how the different parts of the system are connected.
Libraries, kernel and modules.
The libraries are the main building blocks of the system. These are reuseable general purpose PHP classes. The libraries are in no way dependent on the eZ Publish kernel. However, some of them are strongly interconnected and thus inseparable. People looking for general PHP libraries should take a look in the "lib" folder within the root directory of an eZ Publish installation. The reference chapter contains a complete list and a short description of the currently available libraries.
The eZ Publish kernel can be described as the system core. It takes care of all the low level functionality like content handling, content versioning, access control, workflows, etc. The kernel consists of various engines that build upon and make use of the general purpose libraries.
An eZ Publish module offers an HTTP interface which can be used for web based interaction with the system. While some modules offer an interface to kernel functionality, others are more or less independent of the kernel. eZ Publish comes with a collection of modules that cover the needs of typical everyday tasks. For example, the content module provides an interface that makes it possible to use a web browser to manage content. The reference chapter contains a complete list and a short description of all the currently available modules. A module can be broken down into the following components:
A view provides an actual web interface. For example, the "search" view of the "content" module provides a web interface to the built-in search engine. Every eZ Publish module provides at least one view. A fetch function makes it possible to extract data through a module from within a template. For example, the "current_user" fetch function of the "user" module makes it possible to access information related to the user who is currently logged in. Some modules provide fetch functions, some don't.
Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2013 eZ Systems AS (except where otherwise noted). All rights reserved.