Che ne dici prima programmazione in Prestashop? 24/09/2015

Sono computer scienziato e programmatore web. Fin dall'infanzia è sempre piaciuto perché non risolvono i problemi, ma trovare soluzioni semplici e pratiche ai problemi precedentemente risolto... Si può dire che mi piace il mio lavoro e ho trascorso abbastanza poche ore della mia vita anche dopo aver terminato il giorno (non si può dire mai che lui sa tutto).

 

Sono stato 10 anni di lavoro nel mondo del web che circonda a java e implementare da zero con php Prestashop non era complicato per me, ma è necessario dedicare tempo a familiarizzare e conoscere tutte le classi, driver, ecc... È come gettare te 10 anni giocando un'auto unica e, improvvisamente, prendere un altro. Sai cosa serve ciascun pedale e anche se hai preso l'auto per fare quello che vuoi, sei consapevole che ti costa dominano una piccola operazione (la frizione è più difficile o più morbido, o le marce sono più o meno lungo...) e non ti senti sicuro come saresti stata tua vecchia auto.

 

Mi ricordo che prima di fare il mio primo modulo gravi per Prestashop (che tra l'altro era per Alabaz, viene chiamato megacanones e sono molto orgoglioso :)), ha dovuto fare diversi moduli semplici per eseguire prove sulla base di ciò che stava imparando (installazione, traduzioni, ganci, classi, driver e sostituzioni...). Ho basato principalmente su Prestashop manuali, codice che è stato trovato in altri moduli a seconda del tema che stava indagando su (a proposito, vivere l'open source, è il modo migliore per imparare e penso che è la ragione principale perché è stato creato).

 

Una volta si vede che la "macchina" sembra funzionare, poi fai già l'approccio effettivo del modulo che si desidera veramente.


Sviluppare un modulo per PrestaShop coinvolge molte ore di ricerca e di progettazione


In precedenza, deve esserci una presa dei requisiti ed essere catturato su carta, in genere eseguita quando si intervista con un famoso (cosa, come, quando...) solo che in questo caso per il nostro modulo. Sarebbe qualcosa come gli aerei dove guardare se vedete che la torre sia falsata. Soprattutto, deve essere molto chiaro qual è lo scopo del modulo, quali processi dovrebbero essere fatto per raggiungere questo obiettivo, quali dati ottiene e cosa e come sono i loro risultati (database, schermo...).


Successivamente, è possibile che stiamo aggiungendo ulteriori requisiti o si andare correggendo alcuni punti di loro, ma c'è già una base su cui lavorare e sarà sempre essere piccole modifiche.

 

Continuando con il modulo di megacanones un esempio di requisiti di questa presa sarebbe la seguente (leggermente condensata):


1. un cannone è un aumento del prezzo del prodotto. Questo aumento, possono essere inclusi nel prezzo visualizzato o incluso quindi. È necessario anche la possibilità di aggiungere una tassa di soggiorno. La canon inoltre deve contenere un testo che lo definisce. (questo punto è il più limpido di sapere quale necessità di dati di input)

2. il canone deve essere visibile al momento dell'acquisto e deve essere aggiunto accanto al prodotto per effettuare l'acquisto, mostrando che esso aggiunto insieme con il prodotto nel carrello e checkout per rendere il cliente consapevole in ogni momento di quello che sta pagando (a questo punto i processi che eseguono i dati immessi vengono riflesse).

3. Inoltre si deve lasciare sulla fattura, nell'email e l'ordine (quest'ultimo punto riflette abbastanza bene ciò che commentando su chi e come i risultati, come ci sono tre diversi modi per tradurlo).

 

Non abbiamo nemmeno iniziato a toccare codice per rendere il nostro modulo e lì al nostro dovere di pianificazione diverse ore impiegate... E che mancano, quindi è utile eseguire uno studio completo (cattura in carta anche):

  • dati/risultati devono essere mantenuti e dove si esibiranno la loro esposizione e la conservazione (forma o backoffice o frontoffice, qualsiasi pagina specifica di prestashop... ecc). In questa parte, è anche consigliato di fare un disegno (su carta) del modulo stesso o il display.
  • pagine di PrestaShop influenzano la nostra funzionalità, quali modelli sono utilizzati, quali ganci sono disponibili e già più controller, classi e modalità esperto.
  • Questa attività anche con altri siti di prendere in considerazione, quali altri moduli, posta... se necessario deselezionare.
  • Soprattutto, cercare di includere tutte le funzionalità di prestashop in modo qualcosa non ci sfuggono e il modulo non funziona correttamente. Ad esempio, se stiamo facendo una funzionalità per l'estrazione che si deve rammentare che prestashop ha un'opzione per impostazione predefinita per un passaggio o 5 passi e a seconda di questo, eseguire alcuni driver e classi.


Una volta abbiamo chiarito questi punti, basta aggiungere al documento che stiamo conducendo nostro studio di ciò che ci accingiamo a svolgere. In questa fase, stiamo già guardando nei punti critici dalla nostra prospettiva e competenza e, pertanto, per definire la soluzione più fattibile per eseguire ognuna di queste caratteristiche; se impegnarsi in un gancio, fare un override... o semplicemente per definire la nostra classi e i dati contenuti in esso (senza svilupparli chiaro).

 

Ad esempio (senza raggiungere aspetti molto tecnici), nel modulo megacanon che ho detto questo potrebbe essere identificato:

  • i dati del Canyon. Classe definita da noi => Canon.php
  • Doveva avere un form per immettere i dati di canon e associarlo con il prodotto (modulo backoffice): questa parte è quello di implementare con il adminproductsextra di gancio e una forma di helperform.
  • Il suo display principale era sulla pagina del prodotto (frontoffice): Product.php, ProductController.php, product.tpl
  • Si deve aggiungere al carrello il prodotto insieme: Cart.php e CartController.php
  • ma poi deve essere visualizzato con il prodotto nel carrello, cassa, ordini, fatture e posta... ecc (questa parte come posso estendersi troppo a sinistra).


Dovreste cercare sempre la soluzione migliore anche quando non tutti lo stesso

 

Questo recente studio è sempre molto personale, come ogni sviluppatore ha le loro preferenze e loro metodologie (anche se alcuni non sono più corretti) e ci sarà sempre qualcuno che lo vede e dice - "lo farei pure". Ovviamente, ci deve essere aperto alle opinioni, gusti e anche i commenti, perché è possibile che tutto questo ci aiuterà a migliorare o a vedere un problema con cui noi non avevamo contato. Ad esempio, non sono a favore di sovrascrittura smarty templates (tpl) già definiti da prestashop; in parte, è il modo più semplice e in tempo sarebbe costato non solo, ma stiamo un po' preso e limitate ad ogni modifica di questo template esternamente.


Un chiaro esempio di ciò che commento è il display della canon nel carrello, in cui era il più semplice, eseguendo l'override del modello correlato e aggiungere due o tre linee semplici, in cui era canon e il relativo importo. Alla fine, e come ho detto, a causa del mio modo di pensare (probabilmente qualcuno aveva scelto l'altra opzione), ha approfittato di un gancio che aveva già stabilito di farlo tutto da javascript, che mi ha fatto scrivere altro codice e piegato anche in modo considerevole il mio sforzo e il mio tempo; ma il mio obiettivo non era finito prima dell'indipendenza di questa parte un po' di prestashop.

 

Tutto ciò che un priori sembra uno spreco di tempo, ci fornirà di molto successiva programmazione del modulo, perché stiamo riflettendo sul ruolo che ci accingiamo a giocare / create successivamente. Ovviamente, è possibile che al momento dello sviluppo stesso, troviamo qualsiasi problema o dubbio che noi non avevamo sorti, e siamo costretti a variare di requisiti e/o approccio per risolvere questo problema. Ma vi garantisco che sarà sempre una piccola problematica rispetto a qualsiasi altra forma di programmazione (da ensayo-prueba - errore va bene quando si sta imparando ma poi uso perde efficacia quando perché il sistema domina un po').

 

Ho provato a non raggiungere tecnicismi, perché voglio che questo post è già letto non dal computer, ma da persone che amano questo mondo di Prestashop e li punge l'interesse e la curiosità di andare un passo oltre.

 

Spero che i vostri commenti.

Un saluto,

COMMENTS

No customer comments for the moment.

Add a comment