Come implementare il modello di strategia nel contesto di pochi elementi chiave su ogni pagina?

0

Questa è la mia preoccupazione: Devo generare contenuti per i tag <title> <h1> e <meta name="description"> , che avranno effetto su ~ 100.000 pagine. Fondamentalmente, è un'ottimizzazione SEO. Sfortunatamente, alcune IA che buttano fuori quella roba non sono un'opzione. Quindi ho bisogno di creare la logica da un modello di search parameters che contiene molti array. C'è molto se condizioni e verificare quale valore esiste e quanti valori dello stesso tipo ci sono.

Il mio primo pensiero è stato quello di usare strategy pattern in questo modo:

    class ContentRenderingStrategy
    {
        private $strategy = NULL;

        public function __contruct()
        {
            //Determine what strategy to use
            if($this->parametersAreSetToUseSomeStrategy()) {
                $this->strategy = new SomeStrategy()
            }
            .....
        }

        public function getTitleContent()
        {
            return $this->strategy->titleContent();
        }

        public function getDescriptionContent()
        {
            return $this->strategy->descriptionContent();
        }
        ....
    }

E alcune classi di strategia assomigliano a:

    class SomeStrategy implements StrategyInterface
    {
        public function titleContent(): string
        {
            //maybe some more logic for some cases
        }

        public function descriptionContent(): string
        {
        }
    }

L'interfaccia dovrebbe essere:

    interface StrategyInterface
    {
        public function renderTitleContent();

        public function renderDescriptionContent();

        .....
    }

Il fatto è che non sono sicuro, ho bisogno di ripensare la mia logica e creare TitleStrategy con la sua logica e DescriptionStrategy ecc.

Questo mi confonde perché h1, desc e titolo hanno gli stessi contesti, a seconda del search parameters , e non sono sicuro di come isolare la logica, e a cosa dovrei dare la priorità. Nella mia attuale configurazione, confido che ognuna di queste cose avrebbe lo stesso contesto, ad esempio se qualcuno scegliesse una sola posizione o solo il nome del prodotto, o magari le mescolasse insieme ecc. Se hai bisogno di ulteriori informazioni non esitare a chiedere.

Di te.

    
posta Igor 23.02.2018 - 14:03
fonte

0 risposte