Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[TwigHooks][RFC] improving the DX

Aperta
#167 3 commenti 2 reazioni 0 assegnatari Vedi su GitHub

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
Stack tecnologico
php, symfony

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

feature

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Sylius/Stack

Tutte le issue di Sylius/Stack

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.