Skip to content

Rename bundles to UX...Bundle, and use AbstractBundle #3203

@Kocal

Description

@Kocal

The Problem

Right now, our bundle naming is all over the place. Some bundles have a UX prefix, others don't, and it's confusing.

Bundles with UX prefix:

  • UXIconsBundle
  • UXMapBundle
  • UXToolkitBundle
  • UxTranslatorBundle (lowercase x 🤔)

Bundles without UX prefix:

  • AutocompleteBundle
  • ChartjsBundle
  • CropperjsBundle
  • DropzoneBundle
  • LazyImageBundle (deprecated)
  • LiveComponentBundle
  • NotifyBundle
  • ReactBundle
  • StimulusBundle
  • SvelteBundle
  • SwupBundle (deprecated)
  • TogglePasswordBundle (deprecated)
  • TurboBundle
  • TwigComponentBundle
  • TypedBundle (deprecated)
  • VueBundle

Why

If I remember correctly, the UX Translator was the first package where I prefixed the bundle name by Ux in #819. Due to skill issue, I assumed that new TreeBuilder('ux_translator') was enough, but nope. 🙈

Then, new packages like Icons, Map and Toolkit used UX (in uppercase), because of "Symfony UX". It would be nice for all packages to follow the same convention based on UX...Bundle.

Also, some bundles use the AbstractBundle (Simpler Bundle Extension and Configuration), but other do not. It would be ideal to re-align all the bundles for using the AbstractBundle, and drop the *Extension and Configuration files.

Migration plan

In 2.x:

  • Create UX...Bundle classes
  • Use the simplified system based on AbstractBundle
  • Remove *Extension and Configuration files (already marked as internal)
  • ❓ Keep the old *Bundle files, but use class_alias (e.g.: class_alias(UXAutocompleteBundle::class, AutocompleteBundle::class))
  • Changelog

For example:

// UXAutocompleteBundle.php

namespace Symfony\UX\Autocomplete;

class UXAutocompleteBundle extends AbstractBundle {
    // ...
}
// AutocompleteBundle.php

namespace Symfony\UX\Autocomplete;

// So using `Symfony\UX\Autocomplete\AutocompleteBundle::class` in `config/bundles.php` will still works
class_alias(UXAutocompleteBundle::class, AutocompleteBundle::class);

In 3.x:

  • Remove the deprecated bundles and aliases
  • Changelog

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCRFC = Request For Comments (proposals about features that you want to be discussed)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions