...
Like most API components, FieldTypes use the Symfony 2 service tag mechanism.
The principle is quite simple: a service can be assigned one or several tags, with specific parameters. When the dependency injection container is compiled into a PHP file, tags are read by CompilerPass
implementations that add extra handling for tagged services. For FieldTypes, each Each service tagged as ezpublish.fieldType
is added to a registry using the alias argument as its unique identifier (ezstring
, ezxmltext
…). Each FieldType must also inherit from the abstract ezpublish.fieldType service. This ensures that the initialization steps shared by all fieldtypes are executed.
...
Code Block | ||
---|---|---|
| ||
servicesparameters: ezsystems ezsystems.tweetfieldtypebundle.fieldType.eztweet.class: parent: ezpublish.fieldType class: EzSystemsEzSystems\TweetFieldTypeBundle\eZ\Publish\FieldType\Tweet\Type tags: services: ezsystems.tweetfieldtypebundle.fieldType.eztweet: parent: ezpublish.fieldType class: %ezsystems.tweetfieldtypebundle.fieldType.eztweet.class% tags: - {name: ezpublish.fieldType, alias: eztweet} |
We take care of namespacing our fieldtype with our vendor and bundle name to limit the risk of naming conflicts.
Section | |||||||
---|---|---|---|---|---|---|---|
|