• Mercatino: Parte 1

    La programmazione di plugin e prodotti vBulletin è una delle frontiere più ambiziose e costituisce spesso una fonte di guadagno importante. Sebbene sembra confinato nel mistero della programmazione in genere, la realizzazione di piccole e grandi aggiunte completamente personalizzate non è così lontanto di quanto si potrebbe sospettare.

    Con questo tutorial cerchiamo dimostrarvi come creare un prodotto complesso, che richiede molta preparazione e conoscenza di vBulletin, ma nello stesso tempo vi aiuta anche a comprendere tutte le caratteristiche per provare nei limiti della vostra conoscenza il fantastico mondo delle aggiunte.

    La pubblicazione sarà più distanziata degli altri articoli, in quanto è necessario descrivere molti meccanismi e redarre una mole di codice non indifferente. Sarà senz'altro un prodotto che non lascia nulla al caso.

    Dobbiamo fare alcune premesse in questo capitolo, per rendervi consapevoli del miglior modo di procedere. Nessuno nasce programmatore, ma nello stesso tempo sappiamo, per indole umana, quale sia il metodo più accurato per ottenere risultati attendibili, soprattutto quando si tratta dell'esplorazione di un nuovo territorio, anche solo mentale. Informazione, costanza e entusiasmo sono i motori di successo, dove l'entusiasmo è un ingrediente importante, quando la voglia di procedere viene meno. Ma bisogna anche conoscere alcune caratteristiche tecniche che sono utili alla realizzazione. La scelta del modo di realizzazione determinano come andrà a finire.

    Ci sono ad esempio diverse tecniche di programmazione, fra le quali spiccano lo Spaghetticode, la programmazione procedurale e la programmazione modulare.

    Lo Spaghetticode è un metodo di programmazione che dimostra veramente poco di tecnica e conoscenza. E' un susseguirsi di istruzioni senza alcuna particolare regola, è spesso illeggibile, illogico e funziona soltanto in alcuni casi, quelli che ritiene utile il suo autore. In tutti gli altri casi verrà aggiunto, inserito o spostato codice in modo di coprire anche le richieste di altri utilizzatori, dove alla fine perfino l'autore stesso non capisce più dove mettere mano. Idealmente, si utilizza questa tecnica di programmazione per una bozza, ma poi diventa una bozza perpetua, il programma tipico che non esce mai dallo stato di collaudo (beta).

    La programmazione procedurale e modulare appartiene ai veterani, mentre la programmazione a oggetti è una variante della programmazione modulare e più recente. Fondamentalmente un programma procedurale segue una sua logica e qualora si manifesta una situazione dove si potrebbe riutilizzare il codice, si crea una funzione, modulo oppure oggetto che è incaricato a svolgere una operazione per più di un solo chiamante.

    In PHP si sono annidate la programmazione modulare e limitatamente la programmazione a oggetti. Dato che ogni programma PHP esegue sul server soltanto per una piccola frazione di tempo, ma deve svolgere sempre molte operazioni simili, rende necessario la programmazione procedurale e modulare, perché sono molto efficienti e si possono realizzare anche con relativamente poca conoscenza.

    In vBulletin, è possibile aggiungere funzionalità tramite l'inserimento di piccole procedure (hook) all'interno del codice di vBulletin stesso. Ogni luogo dove è possibile inserire codice, vBulletin chiama una funzione speciale, che interpreta il codice PHP inserito in formato di plugin. Questo codice può effettuare operazioni senza dover ricorrere a procedure complesse, in quanto vBulletin rende già tutto disponibile.

    Ovviamente, un programmatore di Spaghetticode non lo sa e inserisce le sue funzioni e aggiunte come gli pare senza alcun riguardo all'integrità del sistema. Al contrario, i programmatori procedurali conoscono e rispettano le regole.

    Nel progetto che vogliamo realizzare per questo tutorial escludiamo categoricamente Spaghetticode. Se qualcuno ritiene che sia divertente, può farlo di sua scelta. Il progetto scelto è la realizzazione di un prodotto commerciale per la compravendita di articoli sul forum (mercatino) e somiglianza, sotto diversi aspetti tecnici e pratici della piattaforma eBay.

    Nei capitoli successivi vediamo dunque come realizzare un prodotto vBulletin professionale che abbia in regola tutte le carte.