Pensare ad oggetti è fondamentale (e naturale) in alcuni linguaggi di programmazione. In Objective-C, ad esempio, non c’è cosa che non possa essere pensata e modellata ad oggetti. In PHP questa prassi è meno frequente, un pò perché il linguaggio è da poco orientato agli oggetti, un pò perché non offre molto a livello di programmazione OO, e un pò perché gli stessi programmatori PHP hanno forse paura di appesantire o di imbarcarsi in situazioni apparentemente risolvibili con la scrittura di codice più lineare.
Categoria ‘PHP’
WPDK: thinking Object-Oriented
WPDK: coding style
Il framework WPDK nasce come compendio ed aiuto allo sviluppo su WordPress. Esso dunque non vuole sostituirsi al core, ma deve tuttavia confrontarsi con l’attuale struttura del codice. Per tutta una serie di ragioni, alcune comprensibili e altre un po meno, WordPress espone un core a volte poco strutturato. Manca di omogeneità, di coerenza, sia a livello logico che a livello di stile di codice.
WPDK: PHP Overloading
L’overloading è quella caratteristica di molti linguaggi orientati agli oggetti in grado di distinguere due o più metodi chiamati in modo identico dalle differenze dei parametri. Attenzione perché come indicato nel manuale PHP:
PHP’s interpretation of “overloading” is different than most object oriented languages. Overloading traditionally provides the ability to have multiple methods with the same name but different quantities and types of arguments.
Comunque sia, se il PHP fosse davvero tipizzato e includesse l’overloading, si potrebbe scrivere:
WPDK: how I did it
Durante lo sviluppo del sistema wpXtreme e in particolare del KIT di sviluppo WPDK (WordPress Development Kit), ho imparato moltissime cose! Soprattutto ho iniziato ad apprezzare tecniche che in passato usavo di rado.
Voglio quindi iniziare con questo post a raccontarvi tutte le cose meravigliose che ho imparato ad amare e mettere in pratica, in relazione allo sviluppo del framework WPDK dedicato allo sviluppo su WordPress.
WPDK WordPress Development Kit
Il WPDK (WordPress Development Kit) è un framework proprietario sviluppato per velocizzare lo sviluppo della suite wpXtreme. L’uso di un framework, oltre a rendere la creazione di plugin per WordPress più rapida, permette di concentrare in un unico luogo numerose funzioni comuni a molti plugin. Il WPDK rappresenta quindi un vero eproprio SDK per lo sviluppo di plugin (e non solo), fornendo API e servizi che possono essere aggiornati e migliorati nel tempo.
WordPress folder functions: tutte le path portano a WordPress
WordPress mette a disposizione molti modi per accedere ai nomi delle sue cartelle e costruirne di nuovi. Ecco un elenco utile con esempi eseguiti, per essere più chiari, a partire da una sottocartella posizionata in un ipotetico plugin:
Plugins
Iniziamo con plugins_url() utile per determinare e costruire url quando si scrive un plugin.
plugins_url()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Se questa riga viene eseguita da // http://www.miosito.com/wp-content/plugins/my_plugin/classes/test.php $r = plugins_url(); // http://www.miosito.com/wp-content/plugins/ $r = plugins_url( 'myscript.js', __FILE__ ); // http://www.miosito.com/wp-content/plugins/my_plugin/classes/myscript.js $r = plugins_url ( 'assets' ); // http://www.miosito.com/wp-content/plugins/assets $r = trailingslashit( plugins_url ( 'assets' ) ); // http://www.miosito.com/wp-content/plugins/assets/ |
WordPress: get_posts() e orderby
Tramite get_posts() è possibile selezionare una sequenza esatta di post utilizzando il parametro post__in negli argomenti passati negli inputs. L’ordine tuttavia non è coerente con la sequenza indicata in quanto WordPress esegue dei controlli sulla clausula ORDER BY della select, nonostante dalla versione 2.8 sia disponibile il valore none.
Funzioni anonime
Mi è stato chiesto quale sia il vantaggio, o svantaggio, nell’uso delle funzioni anonime o inline (o onfly), utilizzate moltissimo in Javascript e, oramai con la 5.3, anche in PHP.
Una funzione inline, o anonima perché non ha – appunto – un nome, è un modo veloce per scrivere alcune procedure, indentando ad albero sequenze di callback ad esempio. Quasi tutti i linguaggi supportano la scrittura di funzioni di questo, ognuno al limite con le sue peculiarità e restrizioni. Possono anche avere nomi diversi e sintassi particolari, come i cosiddetti blocks in Objective-C.
WordPress snippet: estrarre meta value con get_posts()
Lavorando con un Custom Post Type (CPT) viene spontaneo utilizzare le funzioni interne di WordPress per visualizzare e filtrare i post di questo tipo. Sia che si usi la get_posts() sia che si crei direttamente un oggetto WP_Query, risulta comodissimo poter creare loop personali sulle proprie tipologie di post. Inoltre WordPress permette di effettuare filtri per tassionomie personali, sul count, sull’ordine, arrivando fino ai meta data. Utilissimo, infatti, è il processo che permette di indicare nelle condizioni di where che tipo di meta data confrontare e con che regole.
Bachi di inizio anno: WordPress update e WPML get_page_by_path()
Il 2012 è iniziato con qualche ora di deep-debugging a causa di due (noti) bachi abbastanza fastidiosi. Il primo, tra l’altro abbastanza datato, presente nel core di WordPress che riguarda il metodo update() della classe wpdb, con la globale (e famosa) omonima istanza $wpdb. Il difetto appare quando si tenta di aggiornare un campo a NULL. Nonostante le numerose lamentele, il team di sviluppo WordPress sembra non trovare soluzione al fastidioso problema. Infatti, ad oggi, l’unica soluzione è quella di scriversi l’SQL per proprio conto.






Ultimi Commenti
Andrea: Un altra spiegazione dettagliata la potete trovare qui!! http://www.cianiandrea.it/arch ives/413
Daniela: Ciao! Provo a chiederti un aiuto per risolvere il mio problema. Sto migrando il mio blog da tumblr a...
Giovambattista Fazioli: @ale: Come indicato @Kevin vedi sul repo di GitHub: https://github.com/gfazioli/Ch roma-Key
Giovambattista Fazioli: @Kevin: See https://github.com/gfazioli/Ch roma-Key
Kevin: Very nice example – would like to see the .fla too!