Bundle that integrate excellent JavaScript ace editor into Symfony Form.

Installs: 191 167

Dependents: 0

Suggesters: 0

Security: 0

Stars: 27

Watchers: 6

Forks: 36

Open Issues: 1




This bundle provides an Ace editor integration for the Symfony Form component by automatically registering the ace_editor form type.


Check the table below to check if your PHP and symfony versions are supported.

PHP version(s) Symfony version(s) AceEditorBundle version
>= 8.1 ^5.4 | ^6.4 ^5.0

For older unsupported versions check the releases page.


To use this bundle with the latest Symfony version install it using Composer:

composer require norberttech/aceeditor-bundle ^5.0

If you're using symfony/flex then the bundle will be automatically registered for you, otherwise you need to register the bundle yourself:

// app/config/bundles.php

return [
    // ...
    AceEditorBundle\AceEditorBundle::class => ['all' => true],
    // ...


use AceEditorBundle\Form\Extension\AceEditor\Type\AceEditorType;

/** @var $builder \Symfony\Component\Form\FormBuilderInterface */
$builder->add('description', AceEditorType::class, [
    'wrapper_attr' => [], // aceeditor wrapper html attributes.
    'width' => '100%',
    'height' => 250,
    'font_size' => 12,
    'mode' => 'ace/mode/html', // every single default mode must have ace/mode/* prefix
    'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
    'tab_size' => null,
    'read_only' => null,
    'use_soft_tabs' => null,
    'use_wrap_mode' => null,
    'show_print_margin' => null,
    'show_invisibles' => null,
    'highlight_active_line' => null,
    'options_enable_basic_autocompletion' => true,
    'options_enable_live_autocompletion' => true,
    'options_enable_snippets' => false
    'keyboard_handler' => null

The above code will create a textarea element that will be replaced with an ace editor instance. The textarea value is updated on every change done in ace editor.


This section is optional, you dont need to configure anything and the form type will still work perfectly fine.

Default configuration:

# app/config/config.yml

    base_path: "vendor/ace" # notice! this is starting from your project's public web root, typically: `%kernel.project_dir%/public`!
    autoinclude: true
    debug: false # sources not minified, based on kernel.debug but it can force it
    noconflict: true # uses ace.require instead of require

You can also include Ace editor directly from a location that follow the same directory layout than, all you need to do is setting base_path option:

    base_path: ""

Ace editor assets

Unless you do some configuration, this bundle expects Ace editor files to be in public/vendor/ace. You can download any ace editor build version from the upstream repository and drop its contents in the corresponding folder.

ACE_VERSION=1.32.3 # replace with whatever ace version you need

mkdir vendor && cd vendor
tar -xvf v${ACE_VERSION}.tar.gz
mv ace-${ACE_VERSION} ace
rm v${ACE_VERSION}.tar.gz