Abbiamo usato BEM per diversi progetti di CMS Drupal con successo. Ciò significa che abbiamo seguito un approccio frontend in cui gli sviluppatori di frontend specificano l'HTML, che viene quindi implementato nel backend.
In Drupal 8, dove abbiamo i modelli Twig, questo non è un grosso problema. Inoltre, Drupal 8 utilizza il BEM stesso. Tuttavia, in Drupal 7 è un vero dolore. Gli sviluppatori di frontend non sono in grado di implementare l'HTML specificato in un tema / modulo, in quanto sarebbe necessaria una conoscenza approfondita di Drupal 7, specialmente quando si utilizzano i pannelli / Panelizer.
Quindi gli sviluppatori di back-end (non avendo "themers") hanno iniziato ad implementare il back-end HTML nei progetti Drupal 7, il che li fa sentire male perché non è la loro area centrale. La ragione principale di ciò è che BEM (e anche altre metodologie CSS) è totalmente basato su classi piuttosto che su nomi di tag. Quindi, per ogni elemento che ha bisogno di uno stile, è necessario avere un nome di classe. Questo è ovviamente un grande vantaggio per gli sviluppatori di frontend poiché possono controllare quali elementi vengono stilizzati. Senza classi, gli elementi wrapper di Drupal 7 possono anche avere uno stile, dal momento che stanno usando gli stessi nomi di tag.
Quando c'è un sistema come Drupal 7 in cui non è facile specificare le classi per tutti gli elementi sarà difficile per lo sviluppatore scrivere tutte queste sostituzioni per generare l'HTML previsto.
Quindi sto cercando una soluzione in cui abbiamo ancora un frontend gestibile - in cui possiamo controllare quali elementi vengono stilizzati, ma anche ridurre la complessità per gli sviluppatori di backend che significa meno classi di quelle richieste da BEM. Sfortunatamente non possiamo andare senza headless / disaccoppiati, il che probabilmente sarebbe l'approccio migliore.
Esistono approcci per questo scenario?