symfony / ux

Symfony UX initiative: a JavaScript ecosystem for Symfony
https://ux.symfony.com/
MIT License
847 stars 312 forks source link

[TwigComponent] Autodiscover from bundles #1714

Open cavasinf opened 6 months ago

cavasinf commented 6 months ago

The goal is to convert every "twig macro component" into TwigComponent (https://github.com/kevinpapst/TablerBundle/issues/173) in TablerBundle.

As of today, there is no "best practice" or "how to" for implementing TwigComponent in bundles. With the multi namespace available, we can configure it like this:

twig_component:
    defaults:
        KevinPapst\TablerBundle\Twig\Components\:
            template_directory: '@Tabler/twig_components/'
            name_prefix: Tabler

[!NOTE] Keep in mind the /twig_components folder.

  1. Will an auto-discovery be available later like Bundle Templates to auto map Bundle TwigComponents?
  2. Should each twig file in <your-bundle>/templates/components be mounted as a Twig Component? In our case, we already have a components folder that is NOT planned for Twig Component (this can be solved internally).
  3. Depending on the answer to 2., can a bundle have "anonymous" components?
  4. Should the DI only inject php classes that have the Symfony\UX\TwigComponent\Attribute\AsTwigComponent attribute and not mount them from "is there twig files in templates/components"
  5. Can a TwigComponent be overrided like Bundle templates
smnandre commented 6 months ago

Concerning autodiscover / bundle component, i'll make you a general answer :)

It's somehting we worked on and.. paused (to release some LiveComponent fixes and UX Icons).

I'll work on it next week as i had an almost ready PR for all this, we "just" need to act some things regarding namespaces.

Stay tuned ? :)

cavasinf commented 6 months ago

Stay tuned ? :)

I'll ping you next week then 😉

kevinpapst commented 6 months ago

Let me be the ping on that one. Can we help with a real world example? Do you have a working branch that we can help testing @smnandre ?

smnandre commented 6 months ago

Nothing like that nope sorry…. But if you want, i can find 30mn during the week-end to centralize all the needs / hidden problems / things we want to préserve, etc

carsonbot commented 1 day ago

Thank you for this issue. There has not been a lot of activity here for a while. Has this been resolved?

kevinpapst commented 1 day ago

@smnandre has there been any progress on that topic? Having such a feature could improve the spreading of UX initiative, if we can publish components in bundles. We can help, but need some input on the how and where.

smnandre commented 1 day ago

This now works for anonymous components: https://symfony.com/bundles/ux-twig-component/current/index.html#3rd-party-bundle