Guida per sviluppatori prestashop 1.5

Page 1

www.prestaitalia.it la community italiana Prestashop

Pagina |1

Community, blog, shop per tutti gli appassionati Prestashop PRESENTA :

Guida Per Sviluppatori PrestaShop 1.5

Guida Realizzata Da :

Agenzia Specializzata sviluppo soluzioni Ecommerce EV Network s.r.l. - Via Emilio Salgari 14/e 31056 Roncade (TV) Cell. 3664373328 – Fax. +39 (0)422 799711 P.IVA: 04417370261 - mail:info@evnetwork.it Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |2

Sommario Guida per lo Sviluppatore di PrestaShop 1.5 ........................................................................ 10 Fondamenti ..................................................................................................................................... 10 Concetti........................................................................................................................................ 10 Architettura Tecnica di PrestaShop ..................................................................................... 10 Modello..................................................................................................................................... 11 Vista .......................................................................................................................................... 11 Controllore .............................................................................................................................. 11 Schema del Database .............................................................................................................. 12 Codificazione Standard ............................................................................................................... 12 PHP ............................................................................................................................................... 12 Nomi Variabili ......................................................................................................................... 12 Assegnazioni .......................................................................................................................... 13 Operatori.................................................................................................................................. 13 Istruzioni .................................................................................................................................. 13 Visibilità ................................................................................................................................... 14 Nomi dei Metodi / Funzioni ................................................................................................. 14 Enumerazione ........................................................................................................................ 14 Oggetti / Classi ...................................................................................................................... 14 Costanti.................................................................................................................................... 15 Parole chiave .......................................................................................................................... 15 Le variabili di configurazione ............................................................................................ 15 Stringhe ................................................................................................................................... 15 Commenti ................................................................................................................................ 15 Return values ......................................................................................................................... 16 Chiamata.................................................................................................................................. 16 Tags .......................................................................................................................................... 16 Indentazione ........................................................................................................................... 16 Array ......................................................................................................................................... 16 Blocco ...................................................................................................................................... 17 Sicurezza ................................................................................................................................. 17 Limitazioni ............................................................................................................................... 17 Altro .......................................................................................................................................... 17 SQL ............................................................................................................................................... 17 Nomi tabelle ............................................................................................................................ 17 Domande SQL ........................................................................................................................ 18 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |3

Installare il validatore di codice (PHP CodeSniffer)......................................................... 18 Integrazione PhpStorm ........................................................................................................ 18 Integrazione Eclipse ............................................................................................................. 19 Integrazione a vim ................................................................................................................. 19 Linea di comando (Linux) ................................................................................................... 19 Impostare il tuo ambiente di sviluppo ........................................................................................... 21 Installare PrestaShop 1.5 localmente ...................................................................................... 21 Prerequisiti................................................................................................................................ 21 Installare un ambiente locale ................................................................................................. 21 Configurare PHP ..................................................................................................................... 21 Scaricare ed estrarre i File PrestaShop ............................................................................... 22 Creare un Database per il tuo Negozio Locale .................................................................. 22 Installare PrestaShop ............................................................................................................. 22 Configurare PrestaShop ............................................................................................................. 23 Disabilitare la cache e forzare la compilazione Smarty .................................................... 23 Visualizzare Messaggi d’Errore ............................................................................................ 23 Abilitare i metodi debug .......................................................................................................... 23 Abilitare la modalità multistore .............................................................................................. 24 File di Configurazione ............................................................................................................. 24 Approfondimento dello sviluppo Core di PrestaShop ................................................................ 25 Accedere al database ................................................................................................................. 25 La struttura del database ....................................................................................................... 25 La classe ObjectModel ........................................................................................................... 26 La classe DBQuery ................................................................................................................. 27 Dispatcher .................................................................................................................................... 28 Controllori ..................................................................................................................................... 29 La classe FrontController ....................................................................................................... 29 Ordine di esecuzione delle funzioni del controllore ........................................................... 29 Controllori esistenti.................................................................................................................. 30 Effettuare l’Overriding di un controllore ............................................................................... 31 Vista ............................................................................................................................................... 31 I Cookie ......................................................................................................................................... 31 Dati inseriti in un cookie di un visitatore/cliente .................................................................. 32 Dati inseriti in un cookie di impiegato/amministratore ....................................................... 33 Hooks ............................................................................................................................................ 33 Usare gli hooks ........................................................................................................................ 34 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |4

Creare un proprio hook .......................................................................................................... 34 Creare un Modulo PrestaShop...................................................................................................... 35 Cos’è un modulo PrestaShop? ................................................................................................. 35 Principi tecnici alla base del modulo .................................................................................... 35 Principi operativi dei Moduli ................................................................................................... 36 La struttura dei File PrestaShop ........................................................................................... 36 Cartella Moduli ......................................................................................................................... 37 Riguardo alla Cache ............................................................................................................... 38 Organizzare il tuo Modulo .......................................................................................................... 38 Creare un primo Modulo ........................................................................................................ 38 I Metodi install() e uninstall() methods ................................................................................. 42 L’Oggetto di Configurazione .................................................................................................. 43 L’Oggetto Negozio .................................................................................................................. 44 Il File Icona ............................................................................................................................... 44 Aspetto nella pagina “Moduli” ................................................................................................ 45 Riguardo al file config.xml .......................................................................................................... 45 Eseguire gli Hooks ...................................................................................................................... 46 Visualizzare il Contenuto........................................................................................................ 48 Inserire un Modello in un Tema ............................................................................................ 50 Usare Smarty ............................................................................................................................... 52 Aggiungere una Pagina di Configurazione.............................................................................. 54 Il Metodo getContent() ............................................................................................................ 54 Mostrare la Scheda ................................................................................................................. 55 Traduzione del Modulo ............................................................................................................... 59 Eliminare un Problema ............................................................................................................... 62 Il Forum Ufficiale di PrestaShop ........................................................................................... 62 Il nostro bug tracker ................................................................................................................ 63 Siti Ufficiali di PrestaShop ...................................................................................................... 63 Hooks in PrestaShop 1.5 ............................................................................................................... 63 Hooks Nuovi & Aggiornati .......................................................................................................... 63 Nuovi Hooks ............................................................................................................................. 63 Hooks Aggiornati ..................................................................................................................... 67 Front office e Back office ............................................................................................................ 70 Collegamenti esistenti del front office .................................................................................. 70 Collegamenti esistenti del back office .................................................................................. 72 Traduzioni in PrestaShop 1.5 ........................................................................................................ 74 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |5

Traduzioni Front office ................................................................................................................ 74 Traduzioni Back office ................................................................................................................ 75 Traduzioni di Messaggi d’Errorre .............................................................................................. 76 Traduzione dei Nomi dei Campi................................................................................................ 77 Traduzioni dei Moduli Installati .................................................................................................. 77 Traduzioni di File PDF ................................................................................................................ 78 Traduzione Modello e-mail ........................................................................................................ 79 Oggetto dell’e-mail .................................................................................................................. 79 Modelli E-mail .......................................................................................................................... 80 Sprintf ............................................................................................................................................ 80 Nei file PHP .............................................................................................................................. 80 Nei file modello (novità nella versione 1.5) ......................................................................... 80 Tutorial degli Sviluppatori ............................................................................................................... 81 Usare il Servizio Web di PrestaShop ........................................................................................... 81 Prerequisiti.................................................................................................................................... 81 Riguardo a CRUD & REST ........................................................................................................ 81 Riguardo a questo tutorial .......................................................................................................... 82 Implementazioni .......................................................................................................................... 82 File ................................................................................................................................................. 82 Libreria Web service ............................................................................................................... 82 File d’esempio .......................................................................................................................... 82 Versioni PDF ............................................................................................................................ 83 Creare accessi al Back Office ....................................................................................................... 83 Creare un Accesso...................................................................................................................... 83 Scoprire – Testare l’accesso al servizio web con il browser .................................................... 84 Scoprire i tuoi dati........................................................................................................................ 84 Esempio ........................................................................................................................................ 84 Primi passi – Accesso al Servizio Web e lista dei clienti .......................................................... 85 Preparazione ................................................................................................................................ 85 Accedere al Servizio Web .......................................................................................................... 85 Gestire gli Errori ........................................................................................................................... 86 Come funziona ......................................................................................................................... 86 Esempio .................................................................................................................................... 86 Creare una lista di clienti ............................................................................................................ 86 Risultato .................................................................................................................................... 87 Struttura .................................................................................................................................... 87 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |6

Recuperare Dati – Recuperare un Cliente .................................................................................. 88 Preparazione ................................................................................................................................ 88 Esempio ........................................................................................................................................ 88 Modificare – Aggiornare i Clienti ............................................................................................... 89 Preparazione ............................................................................................................................ 89 Passaggio n. 1: Ottenere i dati e la Creazione di una scheda ......................................... 90 Passaggio n. 2: Aggiornare la risorsa .................................................................................. 91 Creazione – Scheda Remota Online........................................................................................ 92 Preparazione ............................................................................................................................ 92 Ottenere tutti i campi ............................................................................................................... 92 Rimozione – Eliminare gli account dei clienti dal database.................................................. 93 Preparazione ............................................................................................................................ 93 Uso Avanzato ............................................................................................................................... 94 Opzioni Rendering .................................................................................................................. 94 Filtri Rendering ........................................................................................................................ 94 Ordinare i filti ............................................................................................................................ 95 Filtri per limitare rendering ..................................................................................................... 96 Gestire le immagini ......................................................................................................................... 96 Modificare le Immagini................................................................................................................ 97 Gestire il Prezzo .............................................................................................................................. 97 Descrizione ................................................................................................................................... 97 Esempio ........................................................................................................................................ 98 Bigliettino – Concetti delineati in questo Tutorial ................................................................... 98 Riassunto dei metodi disponibili nella libreria ..................................................................... 98 Opzioni ...................................................................................................................................... 99 Usare la libreria in modalità multistore ................................................................................. 99 Helper .............................................................................................................................................. 100 Vari tipi di helper ........................................................................................................................ 100 I loro Modelli ............................................................................................................................... 100 Sovrascrittura ............................................................................................................................. 100 Esempio di eredità del modello: aggiungere un nuovo tipo di campo in una scheda 100 Scheda Helper ............................................................................................................................... 101 Dichiarazione della scheda ...................................................................................................... 101 Lista Helper .................................................................................................................................... 102 Dichiarazione della Lista .......................................................................................................... 102 Aggiungere un’azione "Dettagli" in una Lista Helper ........................................................... 104 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |7

Principi............................................................................................................................................. 104 Esempio .......................................................................................................................................... 104 Aggiungere l’azione .................................................................................................................. 104 Generalità di Ajax ...................................................................................................................... 104 Effettuare una richiesta Ajax sulla struttura della tabella .................................................... 104 Effettuare una richiesta Ajax usando la propria struttura .................................................... 105 Opzioni Helper ............................................................................................................................... 105 Usare gli helper per sovrascrivere un modello del back office .............................................. 106 Architettura di un Modello del Back office ............................................................................. 106 Esempi ........................................................................................................................................ 106 Prerequisiti.............................................................................................................................. 106 Esempio 1: Usare modelli per helper all’interno di un controllore ................................. 107 Esempio 2: Sovrascrivere un modello helper ................................................................... 109 Esempio 3: Sovrascrivere un modello esistente .............................................................. 110 Nuove Caratteristiche di Sviluppo in PrestaShop 1.5.............................................................. 111 Core di PrestaShop ................................................................................................................... 111 Modulo API ................................................................................................................................. 112 Hook ........................................................................................................................................ 112 Effettuare l’overriding ............................................................................................................ 113 Nuova Struttura dei File e Nuove Operazioni ................................................................... 113 Caratteristica Multishop ........................................................................................................ 115 Servizio web Addons ............................................................................................................ 115 Sistema di Aggiornamento ................................................................................................... 115 Tema API .................................................................................................................................... 116 Usare l’Oggetto Contesto ............................................................................................................. 116 Cos’è l’oggetto Contesto? ........................................................................................................ 116 Cosa viene immagazzinato dal Contesto? ............................................................................ 117 Come accedere al Contesto? .................................................................................................. 117 Come viene inizializzato il Contesto? .................................................................................... 117 Come utilizzare il Contesto? .................................................................................................... 117 Altri esempi su come usare il Contesto ................................................................................. 118 Usare il Contesto in un modulo di PrestaShop 1.4 .............................................................. 118 Le migliori pratiche della Classe DB .......................................................................................... 119 Elementi fondamentali .............................................................................................................. 119 I Metodi disponibili ..................................................................................................................... 120 insert() ..................................................................................................................................... 120 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |8

update() ................................................................................................................................... 120 delete() .................................................................................................................................... 121 execute() ................................................................................................................................. 121 query() ..................................................................................................................................... 121 executeS() .............................................................................................................................. 122 getRow() ................................................................................................................................. 122 getValue() ............................................................................................................................... 122 NumRows()............................................................................................................................. 123 Altri Metodi.............................................................................................................................. 123 Differenze tra PrestaShop 1.4 e 1.5 ....................................................................................... 123 Metodo Pubblico e Metodo sovrascrivibile ................................................................................ 123 ObjectModelCore (ObjectModel.php) .................................................................................... 124 ToolsCore (Tools.php) .............................................................................................................. 124 AdminTabCore (AdminTab.php) ............................................................................................. 126 PDFCode (PDF.php) ................................................................................................................ 127 ConfigurationCore (Configuration.php) .................................................................................. 127 CookieCore (Cookie.php) ........................................................................................................ 127 DbCore (Db.php) ....................................................................................................................... 128 LinkCore (Link.php) ................................................................................................................... 128 MailCore (Mail.php) ................................................................................................................... 129 FrontControllerCore (FrontController.php) ............................................................................ 129 Effettuare l’overriding di Comportamenti Predefiniti ................................................................ 130 Effettuare l’overriding dele Classi e i Controllori di PrestaShop ........................................ 130 Effettuare loOverriding una Classe .................................................................................... 130 Effettuare l’overriding di un Controllore ............................................................................. 131 Effettuare l’overriding di altri Comportamenti .................................................................... 131 Effettuare l’overriding di un Comportamento del Modulo.................................................... 131 Manipolare manualmente il codice ‘override’........................................................................ 132 Codice d’esempio ...................................................................................................................... 132 Esempio 1 ............................................................................................................................... 132 Esempio 2 ............................................................................................................................... 133 Esempio 3 ............................................................................................................................... 134 Utilizzare addJquery(), addJqueryPlugin() e addJqueryUI() .................................................. 134 Riguardo a Controller::addJquery() ........................................................................................ 134 Riguardo a Controller::addJqueryUI() .................................................................................... 135 Riguardo a Controller::addJqueryPlugin('plugin_name') .................................................... 136 Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina |9

Gestire Caratteri speciali nei link ................................................................................................ 136 Effettuare l’overriding ................................................................................................................ 137 Esempio d’uso ........................................................................................................................... 138 Usare un’altra lingua rispetto a Khmer .............................................................................. 138 Aggiungere un supporto per un’altra lingua ...................................................................... 138 Moduli che si auto aggiornano .................................................................................................... 139 Controllori del Font Office ............................................................................................................ 139 Come usare Forge per contribuire a PrestaShop .................................................................... 140 Come scrivere un messaggio di commit.................................................................................... 142 Tipo .............................................................................................................................................. 142 Categoria .................................................................................................................................... 142 Descrizione ................................................................................................................................. 143 Esempio di un messaggio di commit...................................................................................... 143 Nuovi File .................................................................................................................................... 143 Cos’è PRESTAITALIA.it ? ................................................................................................................... 145 HAI BISOGNO DI AIUTO ? ................................................................................................................. 146 CONTATTACI ALLO 0422798184 O INFO@EVNETWORK.IT ................................................................... 146

Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina | 10

Guida per lo Sviluppatore di PrestaShop 1.5 Fondamenti Concetti Dovresti conoscere bene PHP e la Programmazione Orientata agli Oggetti prima di provare a scrivere il tuo modulo. PrestaShop è stato concepito in modo tale da incrementare facilmente la propria struttura di base con moduli sviluppati da terzi, rendendolo un software e-commerce interamente personalizzabile. Un modulo è un’estensione di PrestaShop, che fornisce agli sviluppatori ulteriori possibilità, quali:

   

Fornire ulteriori funzionalità a PrestaShop. Visualizzare ulteriori prodotti sul sito (selezione di prodotti, ecc...). Comunicare con altri servizi e-commerce (acquistare guide, piattaforme di pagamento, logistica...) ecc... L’azienda che sta dietro a PrestaShop fornisce gratuitamente oltre 100 moduli nativi, consentendo di ‘lanciare’ la propria attività velocemente e in maniera gratuita. Sono disponibili anche oltre 1600 add-ons nel sito ufficiale add-ons site. Questi moduli addizionali sono stati creati dall’azienda PrestaShop o dai membri della community di Prestashop, e sono venduti a prezzi economici. In qualità di sviluppatore, hai la possibilità di condividere i tuoi moduli in questo sito, e ricevere il 70% delle somme derivanti dalla vendita delle tue creazioni.

Architettura Tecnica di PrestaShop PrestaShop è basata su 3-tier architecture:

  

Oggetto/data. L’accesso al database è controllato attraverso dei file nella cartella “classi”. Contollo dati. Il contenuto fornito dall’utente è controllato da file nella directory radice. Design. Tutti i file dei temi sono contenuti nella cartella “temi”.

Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina | 11

Questo è lo stesso principio dell’architettura Modello–Vista–controllore (Model-View-Controller) (MVC), ma è più semplice e chiaro. Il nostro team di sviluppatori ha deciso di non usare un framework PHP, come Zend Framework, Symfony o CakePHP, in modo da consentire una migliore leggibilità, e di conseguenza una revisione più veloce. Questo consente inoltre performance migliori, poiché il software è costituito solamente da righe di codici richiesti, e non contiene librerie generiche supplementari. Un’architettura a tre strati ha molti vantaggi:

   

È più semplice la lettura del codice del software. Gli sviluppatori possono aggiungere e modificare i codici più velocemente. I grafici e gli integratori HTML possono lavorare con i confini della cartella /themes senza dover leggere e capire ogni singola riga del codice PHP. Gli sviluppatori possono lavorare su dati e moduli addizionali che possono essere utilizzati dagli integratori HTML.

Modello Un modello rappresenta il comportamento dell’applicazione: processione dei dati, interazione del database, ecc. Esso descrive o contiene i dati che sono stati processati dall’applicazione. Gestisce questi dati e garantisce la loro integrità.

Vista Una Vista è l’interfaccia con cui l’utente interagisce. Il suo primo compito è quello di mostrare i dati che sono stati forniti dal modello. Il secondo è quello di occuparsi di tutte le azione dell’utente (click del mouse, selezione di elementi, tasti, ecc.), e inviare questi eventi al controllore. La vista non effettua alcun processo. Mostra solamente il risultato del processo effettuato dal modello, e interagisce con l’utente.

Controllore Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina | 12

Il Controllore gestisce la sincronizzazione degli eventi tra il Modello e la Vista e, se necessario, li aggiorna entrambi. Inoltre riceve tutti gli eventi dell’utente e gestisce le azioni da effettuare. Se un’azione necessita la modifica dei dati, il Controllore “chiederà” al Modello di cambiare i dati, e il Modulo a sua volta notificherà alla Vista che i dati sono stati modificati, in modo che la Vista possa aggiornarsi.

Schema del Database

Puoi scaricare lo schema SQL di PrestaShop 1.5 in PNG form (2.75 Mb), o in the original MySQL Workbench file format (dovrai avere MySQL Workbench per visualizzarlo).

Codificazione Standard La leggibilità è importante, ancor di più quando si scrivono codici open souce, poiché il codice è visibile a milioni di persone, e il controllo dei bug si affida a questo ‘brulicante milione’ per localizzare i bug e capire come risolverli. Questo è il motivo per cui, quando si scrive qualcosa per PrestaShop, che sia un tema, un modulo o un patch del core, è importante impegnarsi a rispettare le seguenti linee guida. Sono quelle che gli sviluppatori di PrestaShop seguono. Rispettarle è il modo più sicuro per avere il tuo codice integrato in PrestaShop. In breve, avere una consistenza di codici aiuta a mantenere i codici più leggibili e gestibili. Se usi un IDE, puoi usare il validatore di codici CodeSniffer.

PHP Nomi Variabili In maniera simile alla classe, al metodo e ai nomi funzione, i nomi variabili dovrebbero essere scritti in inglese in modo da poter essere universalmente leggibili. Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina | 13

Usa lettere minuscole, e separa le parole usando gli underscore. Non usare mai il camelCase. 1. Corrispondente ai dati dal database: $my_var. 2. Corrispondente all’algoritmo: $my_var. 3. Il livello di visibilità non viene modificato dal nome della variabile : private $my_var.

Assegnazioni 1. Dovrebbe esserci uno spazio tra variabile e operatori: $my_var = 17; $a = $b;

Operatori 1. "+", "-", "*", "/", "=" ciascuna delle varie combinazioni (es. "/=") necessita uno spazio tra l’elemento di sinistra e quello di destra. $a + 17; $result = $b / 2; $i += 34; 2. "." non ha uno spazio tra l’elemento di sinistra e quello di destra.. echo $a.$b; $c = $d.$this->foo(); Raccomandazioni Non utilizzare la concatenazione in maniera eccessiva. 3. ".=" necessita di una spazio tra l’elemento di sinistra e quello di destra. $a .= 'Debug'; 4. Quando si testa una variabile boolean, non bisogna usare un operatore di confronto, ma direttamente il valore, o il valore prefissato con un punto esclamativo: // if // if

do not use this ($var == true) ...nor this ($var == false)

// if // if

use this ($var) ...or this (!$var)

Istruzioni 1. if, elseif, while, for: necessita di uno spazio tra la parola chiave if e le parentesi (). if (<condition>) while (<condition>) 2. Quando viene usata una combinazione di if e else ed entrambi possono tornare un valore, else deve essere omesso. if (<condition>) return false; return true; Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


www.prestaitalia.it la community italiana Prestashop

Pagina | 14

Raccomandazioni Suggeriamo un ritorno per metodo/funzione. 3. Quando un metodo/funzione torna un boolean e il valore tornato del metodo/funzione attuale dipende da esso, la istruzione if deve essere evitata. public aFirstMethod() { return $this->aSecondMethod(); } 4. I test devono essere raggruppati per entità. if ($price AND !empty($price)) ... if (!Validate::$myObject OR $myObject->id === NULL) ...

Visibilità 1. La visibilità deve essere definita ogni volta, anche quando è un metodo pubblico. 2. L’ordine delle proprietà del metodo dovrebbe essere: visibility static function functionName(). private static function foo()

Nomi dei Metodi / Funzioni 1. I nomi dei metodi e delle funzioni usano sempre il CamelCase: comincia con un carattere minisculo e ogni parola seguente deve cominciare con la lettera maiuscola. public function myExampleMethodWithALotOfWordsInItsName() 2. Dopo il nome del metodo è necessario andare a capo con le parentesi. public function myMethod($arg1, $arg2) { ... } 3. I nomi Metodo e Funzione devono essere espliciti, quindi i nomi funzione come b() o ef()sono proibiti. Eccezioni Le uniche eccezioni sono la funzione traduzione (chiamata l()) e le funzioni debug (chiamate p() e d()).

Enumerazione Le virgole devono essere seguite (e non precedute) da uno spazio. protected function myProtectedMethod($arg1, $arg2, $arg3 = null)

Oggetti / Classi 1. I nomi degli oggetti devono essere al singolare. class Customer 2. I nomi delle classi devono rispettare la pratica CamelCase, in cui la prima lettera è maiuscola. class MyBeautifulClass Tutti i marchi utilizzati sono di proprietà dei rispettivi proprietari. Tutti i diritti sono riservati. E’ vietata la distribuzione dei contenuti di questo manuale in ogni sua forma non autorizzata

Rev. 01 - maggio 2013


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.