This tutorial aims at covering the conception and development of a custom eZ Publish 5 FieldType.

We will do this by implementing a Tweet Field Type. It will:

About Field Types

They are the most granular building block for content managed by eZ Publish. Quite a few are shipped by default (
They are responsible for:

Tutorial Steps

The bundle

FieldTypes, like any other eZ Publish 5 extensions, must be provided as Symfony 2 bundles. This chapter will cover the creation and organization of this bundle

Creating the bundle, structuring the bundle


This part will cover the implementation of the eZ Publish API elements required to implement a custom FieldType


Storing data from any FieldType into the Legacy Storage Engine requires that your custom data is mapped to the data model. This part will cover the implemention of the storage converter for the Tweet FieldType.

 Custom storage

Whenever a FieldType must store more than the basic primitives the API supports, custom, external storage must be implemented. This part covers how a FieldType can store custom data anywhere, in particular into custom tables in the legacy database.