[6.x] POC PHP Web Components#19032
Draft
brianjhanson wants to merge 6 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Something I've been mulling over for a bit and finally put together a proof of concept today to get an idea of what it feels like.
Along with our web components we generate a Custom Elements Manifest which contains a JSON representation of the components in our system. Using that, I wanted to see how reasonable it was to generate PHP classes that would mirror the API of our web components. The goal would be to use those components instead of the various
*Htmlmethods we have around the codebase.It turns out it's pretty feasible.
This PR sets up a proof of concept of that, mostly using Claude for the dirty work.
I'm still on the fence on if this is a good idea or not. I'm worried that the burden of maintenance will be larger than the benefit of doing something like this instead of
Html::tag('craft-web-component')