Campi static del Controller generico si azzerano ad ogni richiesta

the_indios

Nuovo Utente
29 Gen 2020
13
0
1
Salve a tutti,


ho una webapp scritta in MVC dove uso un frontcontroller (index.php) a cui reinvio tutte le richieste mediante url rewriting.

la index.php invoca un controller generico che ha un metodo per il routing. Ora avrei la necessità di salvare dei dati tra una richiesta e l'altra, senza usare variabili di sessione e ho pensato di creare un campo static della classe.

Per vedere se veniva aggiornato, ho creato un campo contatore che aggiornavo ogni volta che si entrava nel costruttore o nel metodo di routing, ma il valore era sempre 1 (0 il valore di defautl), come mai?

I campi static non dovrebbero essere condivisi tra tutti gli oggetti di tipo Controller e non venire azzerati tra una richiesta e l'altra?
 

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
ho una webapp scritta in MV
Non scrivi in MVC, utilizzi il pattern MVC ... è diverso...

invoca un controller generico che ha un metodo per il routing
Qui non è più MVC....

ho pensato di creare un campo static della classe
Le classi non hanno campi....

I campi static non dovrebbero essere condivisi tra tutti gli oggetti di tipo Controller e non venire azzerati tra una richiesta e l'altra?
Corretto per l'istanza corrente.... Se cambia il processo la VARIABILE (no campo) torna al suo stato iniziale....

Da come scrivi. sembrerebbe tu stia barcollando nel buoi...

Detto questo serve la persistenza dello stato per fare quello che chiedi... Se non vuoi utilizzare le sessioni, potresti utilizzare redis e/o cookie e/o socket (ws, wss, https), la scelta della tipologia della persistenza è totalmente a carico del programmatore...
 

the_indios

Nuovo Utente
29 Gen 2020
13
0
1
Lo so, attualmente il pattern non è MVC, ma assomiglia molto di più ad un frontcontroller, però sto cercando di arrivare a quella forma.

Scusa, non campo, ma proprietà intendevo... il campo è riferito alle istanze.

In che senso cambia il processo?
 

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
Ad ogni richiesta http si attiva il processo relativo all'esecuzione di php, effettua il lavoro e viene killato... Quindi il codice parte sempre da zero! Cosa invece ben diversa con wss e nodejs...