metodo statico, funzione helper o nel controller, dove va?

0

Sto lavorando su una funzionalità che consente semplicemente a un utente guest di eseguire un'azione un certo numero di volte prima di richiedere l'accesso per \ creare un account. In questo caso, possono votare le foto in una galleria 5 volte prima che l'app chieda loro di creare un account.

La mia soluzione è approssimativamente la seguente.

  1. Al caricamento iniziale, imposta cookie con vote_count = 1;
  2. recupera e incrementa lo spartito ogni volta che un utente vota;
  3. Quando vote_count = 5, reindirizza l'utente alla pagina chiedendo loro di accedere o registrarsi. (ovviamente l'utente può cancellare i propri cookie o utilizzare un altro browser, ecc., ma non mi interessa in questo momento).

Il mio problema è dove implementare questo codice.

  1. Anche se chiamerò questa funzione solo su una rotta, ritengo che il controller sia nel posto sbagliato perché aggiunge un bel po 'di codice, e se cambio il numero di volte che un utente può votare, sto cambiando il codice nel controller (forse non è una brutta cosa?)
  2. Non credo che questo dovrebbe vivere in un file helpers.php perché non è necessario da nessun'altra parte nell'app.
  3. Credo che potrei creare la sua classe e potrebbe vivere come metodo statico, ma ritengo che i metodi statici siano i migliori per funzionalità in cui restituiscono sempre lo stesso valore e hanno lo stesso risultato indipendentemente da dove sono chiamati .

Per mettere questa in una buona domanda. Qual è un buon modo OOP di implementare ciò che è in linea con Laravel?

    
posta dangel 16.01.2016 - 03:00
fonte

1 risposta

1

Anche se non ho esperienza con Laravel, ma ho un solido background Symfony2 e non so quanto sia importante il framework in questa domanda, direi che la soluzione OOP corretta è creare una classe che implementa il logica necessaria.

Mettere questo codice nel controller ti sembra una cattiva idea, perché il controller è un livello di integrazione, quindi non deve essere inserita alcuna logica di business. Ovviamente puoi sempre scendere a compromessi a seconda della situazione.

E se dovesse essere un metodo statico o meno - controlla questa risposta: link

    
risposta data 18.01.2016 - 12:15
fonte

Leggi altre domande sui tag