Layer 06

Prestashop molto lento con plugin PayPal free

visibilite Nel tempo non son mai riuscito a capire cosa fosse, ho pensato problemi di prestazioni, a problemi di scrittura su disco, a log file troppo grosso, mi sono spinto perfino nell’ottimizzazione di css e del codice del core di prestashop. La versione che su cui ho lavorato è la 1.5.5 , certo non è l’ultima aggiornatissima ma non era quello il problema. Preso dallo sconforto de dalla disperazione ho cominciato a disabilitare metodicamente tutti i plugin uno ad uno e poi via a testare il sito. Il che significa eseguire i seguenti passi:

  • disabilita un plugin
  • svuota la cache del browser
  • svuota la smarty cache di prestashop
  • testa il sito
  • se è ancora troppo lento, ricominciare dal primo punto con un altro plugin
Alla fine l’inghippo era proprio il modulo PayPal Free versione 3.8.1, col modulo attivo il sito era prepotentemente lento,  senza plugin era velocissimo. 45-1 Posto che senza paypal un ecommerce non può esistere a mio parere, mi son messo in debug ed ho analizzato il codice cercando di capire come può essere che un plugin così diffuso vada così male. In deifnitiva sembrerebbe che paypal faccia l’aggiornamento automatico dei loghetti. Se i file dei loghi sono più vecchi una settimana, il modulo tenta automaticamente di scaricare da internet la nuova versione e di scriverla sul server. Infatti il problema non era il plugin ma era il mio server non aveva i permessi di scrittura proprio su quei file. (capirai … di solito io blocco tutto) Quindi la prima soluzione è stata quella di dare accesso ad apache alla cartella modules/paypal/img/logos cosa che però sinceramente non gradisco. Per un paio di giorni ho continuato a riflettere e a rimuginare. Per quanto bella sia l’idea di avere i loghi sempre aggiornati mi chiedo quante volte nell’arco di un anno verranno aggiornati sti benedetti loghi. La risposta è MAI! Quindi ho voluto disabilitare la funzione. Ben consapevole che la cosa mi avrebbe lasciato l’incombenza dell’aggiornamento… Ho bellamente commentato la riga di codice:
//$this->updatePictures($logo[0], $destination);
Ora il server risponde contempi tra gli 1 – 2 secondi. Basta ricordarsi che quando si aggiornerà il modulo dovrò ricommentaer quella riga. Enjoy it!]]>