Adobe Commerce SnippetsSnippets para Adobe Commerce y validación en vivo de los XML contra los XSD de tu propio proyecto. Extensión de VS Code para el desarrollo PHP de Adobe Commerce (Magento Open Source y Adobe Commerce): valida mientras
escribes cada
Versión del código: 0.1.0, según package.json. Requiere VS Code >= 1.90.0. Por qué otra extensiónHay extensiones de snippets para Adobe Commerce en el Marketplace, la mayoría sin cambios desde hace años, y hay
herramientas que generan archivos y navegan entre clases. Ninguna valida el XML en vivo contra los XSD. Hasta
ahora, eso pedía generar un catálogo de URN con Esta extensión lo hace sola:
No genera archivos con comandos ni navega entre clases, layouts o ACL. Para eso ya existen otras herramientas, y esta convive con ellas. InstalaciónDesde el VS Code Marketplace: busca «Adobe Commerce Snippets», o desde Quick Open (
Desde el terminal:
Validación de XMLAbre cualquier XML de un módulo o de un tema. Si declara un esquema Cómo encuentra el XSDLa URN dice de qué componente es el XSD, y el
Los Por qué no viene ningún XSD en la extensión: los XSD de la plataforma tienen licencia OSL-3.0 y esta extensión es MIT.
Leerlos de tu proyecto, además, garantiza que la validación corresponde a la versión instalada. Si un XSD no se
encuentra (el módulo no está instalado, todavía no corriste Configuración
apaga la validación. SnippetsTodos los prefijos empiezan con XML de módulo
|
| Prefijo | Qué inserta |
|---|---|
ac-db-schema, ac-db-table |
El archivo con una tabla, una <table> |
ac-db-int, ac-db-varchar, ac-db-text, ac-db-decimal, ac-db-timestamp, ac-db-boolean |
Una <column> de cada tipo |
ac-db-index, ac-db-unique, ac-db-foreign |
Índice, clave única y clave foránea |
Layout
| Prefijo | Qué inserta |
|---|---|
ac-layout |
Archivo de layout con <body> |
ac-layout-referenceblock, ac-layout-referencecontainer |
<referenceBlock>, <referenceContainer> |
ac-layout-block |
<block> con template y ViewModel |
ac-layout-container |
<container> |
ac-layout-move, ac-layout-remove |
<move>, quitar un bloque o contenedor |
PHP
| Prefijo | Qué inserta |
|---|---|
ac-registration |
registration.php |
ac-plugin, ac-plugin-before, ac-plugin-after, ac-plugin-around |
Clase de plugin y cada tipo de método |
ac-observer |
Observer |
ac-controller, ac-controller-json, ac-controller-admin |
Controller GET del frontend, POST con JSON y del Admin con ADMIN_RESOURCE |
ac-viewmodel |
ViewModel con ArgumentInterface |
ac-data-patch, ac-schema-patch |
Data patch y schema patch |
ac-cron |
Clase de un cron job |
ac-consumer |
Consumer de la cola de mensajes |
ac-resolver |
Resolver de GraphQL |
ac-service-contract |
Interfaz de repositorio en Api/ |
Templates .phtml
| Prefijo | Qué inserta |
|---|---|
ac-phtml |
Cabecera con $block, $escaper y el ViewModel |
ac-esc-html, ac-esc-html-tags |
escapeHtml, con etiquetas permitidas |
ac-esc-attr |
escapeHtmlAttr |
ac-esc-url |
escapeUrl |
ac-esc-js |
escapeJs |
RequireJS y GraphQL
| Prefijo | Qué inserta |
|---|---|
ac-requirejs-config |
requirejs-config.js con map, paths y mixins |
ac-requirejs-map, ac-requirejs-paths, ac-requirejs-mixins |
Cada sección por separado |
ac-mixin-component, ac-mixin-widget, ac-mixin-function |
Mixin de componente UI, de widget jQuery y de función |
ac-graphql-query, ac-graphql-mutation, ac-graphql-extend |
Query, mutation y campo nuevo en un tipo existente de schema.graphqls |
Junto con otras extensiones
No colorea la sintaxis. Asocia .phtml al lenguaje php y .graphqls al lenguaje graphql para los snippets, y
convive con cualquier extensión que traiga la gramática de PHP, XML o GraphQL.
Desarrollo
npm install
npm run check # regenera los snippets, falla si cambiaron, y corre los tests
ADOBE_COMMERCE_PROJETO=/ruta/del/proyecto node --test # valida todos los XML de un proyecto real
Los tests bajan los XSD de magento/magento2 (2.4.9) a una carpeta temporal, fuera del repositorio, para validar
cada snippet y los XML del núcleo. Nada de eso entra en el repositorio ni en el paquete. Sin red, esos tests se
saltan. npm run xsd-teste hace la descarga a mano.
Ramas: el trabajo sale de dev y llega por pull request; dev → qa → main por merge de la rama entera, y el commit
de main lleva tag anotado de versión. ./scripts/instalar-hooks.sh activa los hooks que cobran lo mismo en local.
Licencia
MIT, ver LICENSE. Los snippets se escribieron a partir de la documentación de Adobe Commerce (Apache-2.0 y MIT), y la validación usa libxml2-wasm (MIT): ver NOTICE.
Hecho con amor y café por commente.me
