[TwigHooks][RFC] improving the DX
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Ambito
- backend, developer-experience
Direzione di ricerca
Non sono indicati file o test. Inizia individuando la configurazione attuale dell’estensione TwigHooks e la gestione delle operazioni sulle risorse, quindi confrontale entrambe con la fluent API proposta e con gli esempi di attributi. Il lavoro sarà considerato completato quando il progetto avrà concordato un ambito concreto per l’API e un percorso di implementazione, compreso il modo in cui viene rappresentata la configurazione degli hook lato utente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Before
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
return static function (ContainerConfigurator $container): void {
$container->extension('sylius_twig_hooks', [
'hooks' => [
'sylius_admin.book.show.content' => [
'body' => [
'template' => 'library/book/show/content/body.html.twig',
'priority' => 100,
],
'dropdown' => [
'component' => DropdownComponent::class,
'priority' => 0,
'props' => [],
],
],
],
]);
};
After
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
return static function (TwigHooksConfig $config): void {
$config->withHook(
(new Hook('sylius_admin.book.show.content'))
->withHookable(
(new HookableTemplate('body', 'library/book/show/content/body.html.twig'))
->withPriority(100)
)
->withHookable(
(new HookableComponent('dropdown', DropdownComponent::class))
->withProps([])
->withPriority(0)
)
);
};
Going further on resource operation
Then we could go further and configure them on a specific resource operation.
#[AsResource(
//...
operations: [
new Show(provider: BookItemProvider::class, hooks: [
(new Hook('sylius_admin.book.show.content'))
->withHookable(
(new HookableTemplate('body', 'library/book/show/content/body.html.twig'))
->withPriority(100)
)
->withHookable(
(new HookableComponent('dropdown', DropdownComponent::class))
->withProps([])
->withPriority(0)
)
]),
],
)]
class ShowBookResource implements ResourceInterface
Note: In userland, we do not need to configure a lot of Twig hooks for our custom operations.
- Lingua principale
- PHP
- Stelle
- 45
- Fork
- 34
- Merge medio
- 4g 33m
- PR unite (30g)
- 8
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Sylius/Stack
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 84/100
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
-
feature question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
-
feature
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Question : Creating userApertadocumentation good first issue question
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di Sylius/Stack
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
sync-en
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
sync-en
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
Yoast/wordpress-seo#23658 ·
I maintainer di solito rispondono entro 3 giorni
-
fixed
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
firefly-iii/firefly-iii#12934 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno