Symfony2 bundle for easy integration of the CKEditor WYSIWYG

Installs: 418 582

Dependents: 13

Suggesters: 21

Security: 0

Stars: 99

Watchers: 11

Forks: 59

Open Issues: 2


v1.13.1 2020-02-19 00:06 UTC


Build Status

KnpBundles Badge


  1. Add TrsteelCkeditorBundle to your composer.json
  2. Enable the bundle
  3. Install bundle assets
  4. Configure the bundle (optional)
  5. Add the editor to a form
  6. Configure data transformers

Step 1: Add TrsteelCkeditorBundle to your composer.json

php composer.phar require Trsteel/ckeditor-bundle ~1.11

Step 2: Enable the bundle

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new Trsteel\CkeditorBundle\TrsteelCkeditorBundle(),

Step 3: Install bundle assets

$ php ./app/console assets:install web --symlink

--symlink is optional

Step 4: Configure the bundle (optional)

For a full configuration dump use:

$ php ./app/console config:dump-reference TrsteelCkeditorBundle

An example configuration:

    class: Trsteel\CkeditorBundle\Form\Type\CkeditorType
    transformers: ['html_purifier']
    toolbar: ['document', 'clipboard', 'editing', '/', 'basicstyles', 'paragraph', 'links', '/', 'insert', 'styles', 'tools']
        document: ['Source','-','Save','-','Templates']
        clipboard: ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo']
        editing: ['Find','Replace','-','SelectAll']
        basicstyles: ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat']
        paragraph: ['NumberedList','BulletedList','-','Outdent','Indent','-','JustifyLeft', 'JustifyCenter','JustifyRight','JustifyBlock']
        links: ['Link','Unlink','Anchor']
        insert: ['Image','Flash','Table','HorizontalRule']
        styles: ['Styles','Format']
        tools: ['Maximize', 'ShowBlocks']
    ui_color: '#000000'
    startup_outline_blocks: true
    width: 800 #Integer or %
    height: 300 #Integer or %
    language: 'en-au'
        url: relative-url.php?type=file
        route: route_name
            type: image

Or even overwrite the 'document' toolbar group in your application completely.

    class: Trsteel\CkeditorBundle\Form\Type\CkeditorType
    toolbar: ['document', 'clipboard', 'editing', '/', 'basicstyles', 'paragraph', 'links', '/', 'insert', 'styles', 'tools']
        document: ['Source']

You can create additional toolbar groups. Just create the group and specify the items. As you can see in the above config the 'document' toolbar group has been overwritten and only shows the 'Source' icon.

Step 5: Add the editor to a form

Example form:

Note: As of Symfony 2.8, you should use the fully qualified class name. (e.g. Trsteel\CkeditorBundle\Form\Type\CkeditorType). Support for the form alias 'ckeditor' has been dropped since Symfony 3.0.


$form = $this->createFormBuilder($post)
            ->add('title', 'text')
            ->add('content', 'ckeditor', array(
                'transformers'                 => array('html_purifier'),
                'toolbar'                      => array('document','basicstyles'),
                'toolbar_groups'               => array(
                    'document' => array('Source')
                'ui_color'                     => '#fff',
                'startup_outline_blocks'       => false,
                'width'                        => '100%',
                'height'                       => '320',
                'language'                     => 'en-au',
                'filebrowser_image_browse_url' => array(
                    'url' => 'relative-url.php?type=file',
                'filebrowser_image_browse_url' => array(
                    'route'            => 'route_name',
                    'route_parameters' => array(
                        'type' => 'image',

Note: All parameters from config.yml can be overwritten in a form (excluding 'class').

Step 6: Configure data transformers

Data transformers will automatically update the html content when the form is processed.

The bundle comes with a html purifier transformer thanks to

If you do not want any transformers enabled you should disable them by:

  1. Disable globally in the config:
    transformers: []
  1. Disable them on a particular form:

$form = $this->createFormBuilder($post)
            ->add('title', 'text')
            ->add('content', 'ckeditor', array(
                'transformers' => array(),

Next Steps