Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Programmare ad Oggetti con Wordpress : Funzioni ed Attributi

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Object-Oriented Programming in WordPress.
Object-Oriented Programming in WordPress: Control Structures II
Object-Oriented Programming in WordPress: Scope

Italian (Italiano) translation by Piergiorgio Sansone (you can also view the original English article)

Mentre continuiamo la nostra discussione sulla programmazione orietata agli oggetti nel contesto di WordPress, è arrivato il momento per parlare delle caratteristiche attuali della programmazione orietata agli ogetti.

Anche se abbiamo già visto le Classi, abbiamo bisogno di  approfondire alcuni costrutti di programmazione fondamentali prima di tornare su alcuni dei concetti principali della programmazione orientata agli oggetti.

In questo articolo, andremo a vedere le funzioni e gli attributi: due aspetti fondamentali della programmazione orietata agli oggetti. Ma prima , dovete assicuravi di aver appreso gli articoli precedenti:

  1. Introduzione
  2. Le Classi
  3. I Types
  4. Le Strutture di controllo : Istruzioni Condizionali
  5. Le Strutture di controllo : I Cicli

Uno dei punti che vorrei ribadire di questa serie è che stiamo lavorando esaminando la  programmazione orientata agli oggetti nel contesto di WordPress, partendo dagli aspetti fondamentali ed assoluti della programmazione.

Stiamo facendo questo per fare in modo che coloro che sono principianti abbiano a disposizione tutto il necessario non solo per iniziare con la programmazione, ma anche per imparare il paradigma ed eventualmente lavorare alla realizzazione di un Plugin WordPress.

Detto questo, riprendiamo la nostra discussione parlando delle funzioni e degli attributi.

Funzioni

Per coloro che hanno familiarità con la programmazione procedurale, allora siete senza dubbio a conoscenza delle funzioni, dopo tutto, sapete come si ottiene il lavoro fatto, giusto?

Ma per coloro che ne sanno poco di programmazione, ci sono due cose da capire sulle funzioni:

  1. Esistono all'interno sia della programmazione procedurale,nella programmazione funzionale, e nella programmazione orientata agli oggetti.
  2. Essi possono essere visti come un modo per legare tutti i costrutti precedenti insieme per completare una unità più complessa del lavoro.

Per il secondo punto , è vero che molto di ciò che abbiamo già visto prima, cioè le variabili, le strutture condizionali , i cicli e via dicendo, sono anche responsabili del completamento di una singola unità di lavoro. Tuttavia, ciascuno di questi lavora  in combinazione tra loro per realizzare qualcosa di leggermente più grande di loro.

A seconda del linguaggio,  è anche probabile che  queste vengano chiamate in modo diverso ad esempio  metodi o routine. Indipendentemente dalla terminologia utilizzata, il punto è che le funzioni utilizzano costrutti fondamentali per completare un'azione.

Funzioni possono funzionare in tre modi, così:

  1. Le funzioni possono eseguire attività acquisendo informazioni e operarando su di esse.
  2. Le funzioni possono eseguire un attività restituendo informazioni al codice che le ha richiamate.
  3. Le funzioni possone eseguire delle attività senza acquisire informazioni e restituirene al codice che le ha richiamate. In poche parole, è possibile eseguire silenziosamente un azione.

In un attimo daremo un occhiata a tutti questi scenari in modo dettagliato , ed in un futuro articolo vedremo come lavorano con le Classi. Per il momento, vediamo come si comportano le funzionani in PHP e  le diverse sfumature di ciascuno di essi.

Funzioni Semplici

Richiamiamo dalla precedente sezione che ci sono tempi nei quali definiamo le funzioni che non accettano nessun input , ne resituiscono nessuna informazione.

In questo caso , questo tipo di funzioni solitamente eseguono molti tipi di operazioni (come l'aggiornamento di una opzione sul Database) e vengono richiamate da un'altra funzione a seguito del completamento di alcune operazioni.

Dunque, per esempio, diciamo che abbiamo una funzione che vogliamo utilizzare per aggiornare il database di WordPress sottostante. Questo richiede la conoscenza di molte cose:

  • update_option
  • Una chiave che useremo per conservare l'informazione
  • Il valore da memorizzare che verrà recuperato con una chiave

Nel nostro caso, diciamo che vogliamo aggiornare un valore nel database, identificato nella chiave blog_last_updated. Quindi, useremo la funzione PHP time() per immagazzionare il tempo quando la funzione verrà richiamata.

Detto questo, andiamo a definire la nostra funzione :

Basandoci sulla descrizione che abbiamo fornito in precedenza, potete vedere che il corpo della funzione utilizza la funzione upatate_option delle WordPress API con la chiave specificata ed il valore che abbiamo descritto.

Questo può poi essere richiamato da un altro pezzo di codice semplicemente chiamando la funzione set_blog_updated();

Argomenti

Le funzioni che non accettano argomenti possono essere utili solo fino ad un certo livello. Ad un certo punto, è necessario essere in grado di trasmettere informazioni in una funzione in modo che possa eseguire qualche tipo di calcolo, il funzionamento o la valutazione delle informazioni.

In linea con il nostro esempio precedente, diciamo che abbiamo ancora voglia di aggiornare il database con un timestamp, ma solo se una determinata chiave viene passato alla funzione; in caso contrario, non faremo nulla.

Nota che la funzione firma - cioè il nome della funzione e dei dati in parentesi - è stato aggiornata per accettare una variabile fa riferenziata da $Key.

Successivamente, la funzione utilizza una istruzione condizionale per controllare il valore della variabile se è uguale a quello della chiave che stavamo guardando nella prima versione della funzione. Per il gusto di fare un facile confronto, i catatteri minuscoli del valore della variabile $key si ottengono utilizzando la funzione PHP strtolower

Questo significa che possiamo richiamare la funzione nel modo seguente ed hanno ancora l'aggiornamento.

  • set_blog_updated( 'BLOG_LAST_UPDATED' );
  • set_blog_updated( 'Blog_Last_Updated' );
  • set_blog_updated( 'blog_last_updated' );

Tutte le chiamate alle funzioni sopra indicate, devono eseguire la seguente operazione, altrimenti, se passassimo qualsiasi altra cosa nella funzione, l'istruzione condizionale sarebbe valutata come false e non verrebbe eseguita la funzione di aggiornamento.

Per esempio, richiamando set_blog_update('not_now'); non funzionerebbe.

Ritorni (Valori restituiti)

Adesso, diciamo che vogliamo che le funzioni che stiamo utilizzando ci restituisca un valore. In particolare, diciamo che abbiamo voluto restituire un valore e volenti o nolenti la funzione di aggiornamento ha funzionato correttamente.

Per fare questo, siamo in grado di approfittare della istruzione return della funzione così come il valore che la funzione update_option ritorna. Secondo il Codex di WordPress, update_option restituirà il valore seguente :

True se il valore dell'opzione è cambiato , false se non lo è oppure se l'aggiornamento è fallito.

A tale scopo, possiamo modificare la nostra funzione affinchè lavori in questo modo :

Adesso abbiamo un funzione che accetta un'argomento, restituisce un valore ed anche sfrutta l'istruzione condizionale non solo per aggiornare il valore ma anche per essere sicuri che il valore venga aggiornato correttamente.

Data la funzione sopra , possiamo richiamarla come abbiamo visto nell'esempio precedente, ma ora possiamo salvare il valore in una variabile che ci consentirà di migliorare ulteriormente il codice del nostro programma.

Ad esempio, possiamo continuare a chiamare la funzione dicendoset_blog_last_updated('blog_last_updated'); ma adesso possiamo anche memorizzare il risultato della funzione in una variabile.

Per fare questo, dobbiamo scrivere una linea di codice che esegue quanto segue : $blog_was_updated= set_blog_last_updated('blog_last_updated'); In questo caso, la variabile $blog_was_updated sarà impostata su true se la condizione verrà eseguita e la chiamata all' aggiornamento sarà riuscita, ma sarà false se la condizione non avrà funzionato o se avràfunzionato, ma il update_function non sarà riuscita.

Argomenti di lunghezza variabile

Esiste un'altro aspetto delle funzioni che va oltre la portata di questo articolo particolare e cioè gli argomenti a lunghezza variabile. In breve, c'è un modo che una funzione può accettare un certo numero di argomenti che non siamo in grado di anticipare durante la scrittura di codice.

Se siete interessati ad andare avanti, potete vedere l'articolo nel manuale PHP; Tuttavia, tratteremo l'argomento più avanti nella serie

Attributi

A questo punto, cambiamo marcia e andiamo a parlare di qualcosa che è puramente legato alla programmazione orientata agli oggetti e che sono gli attributi delle classe.

Ricordiamo dalla nostra discussione sulle classi che abbiamo guardato una classe di prova per un blog_post Indicativamente, il codice è come questo :

A questo punto della serie, dovresti essere in grado di identificare facilmente la definizione di una classe , la definizione di una funzione e gli attributi.

In particolare, gli attributi sono le tre variabili che esistono nella parte superiore del file sopra le funzioni. Come indicato nell'articolo sulle classi, gli attributi possono essere pensati come gli aggettivi che descrivono la classe.

Nell'esempio di cui sopra, abbiamo una classe che rappresenta un post sul blog, e un post può essere descritto dal suo autore, la sua data di pubblicazione, e se sia o non è stato pubblicato.

Questi valori particolari non sono altro che variabili come abbiamo esaminato in precedenza nella serie, e possono contenere qualsiasi tipo di valore che si tratti di un tipo di dati primitivi, come una stringa, intero, booleano o si possono fare riferimento a un tipo di dati più complessi, quali come una matrice o un altro oggetto.

Il punto degli attributi è che esistono a livello di classe. Ciò significa che le variabili possono essere utilizzate in qualsiasi delle funzioni che sono definite nella classe - non devono essere passate come argomenti di funzioni, e possono essere aggiornate per riflettere lo stato dell'oggetto in qualsiasi momento durante la sua esecuzione.

Ora, in termini di come sono impostati, ciò avviene nel contesto di un particolare tipo di funzione chiamata un costruttore. In breve, un costruttore è una funzione che viene inserita a parte specificamente per l'inizializzazione di una classe, e in molti casi, è utilizzata per impostare i valori.

In PHP , il costruttore è una funzione chiamata __construct che è una parola riservata del linguaggio. Quindi, date le caratteristiche di cui sopra e le basi sulle funzioni, ecco come potremmo fare per inizializzare i nostri attributi:

Una delle cose più importanti da tenere da parte del codice di cui sopra è che gli attributi sono riferenziati in modo leggermente diverso rispetto alle variabili normali. In particolare, si noti che ad essi si fa riferimento utilizzando la parola chiave $this. Questo è ciò che differenzia gli attributi da variabili normali all'interno di una definizione di classe.

In secondo luogo, si noti che le variabili che vengono impostati su valori iniziali. Così com'è ora, ogni post del blog che si crea non avrà un autore che è specificato, esso non avrà una data di pubblicazione, e non avrà lo stato della pubblicazione.

Come ci addentriamo nella discussione sulla programmazione orientata agli oggetti, vedremo come sono impostate le variabili, come possono essere utilizzate in tutte la classi, come possono essere impostati, recuperati, e così via.

Pubblico, Privato, e cosa?

Per quei lettori astuti, probabilmente hai notato le parole chiave utilizzate in tutto il codice, come pubblico e privato. C'è anche un'altra parola chiave che viene utilizzata nell'ambito della programmazione orientata agli oggetti e che è protected.

Parleremo di ciascuno di questi in dettaglio nel prossimo articolo.

Nel prossimo numero

Parleremo di ciascuno di questi in dettaglio nel prossimo articolo. Come abbiamo appena detto, ci sono una serie di parole chiave che vengono utilizzati per riferirsi a attributi e tutte le funzioni di cui hanno a che fare con ciò che è noto come ambito. Nel prossimo articolo, che andremo a cominciare ad esplorare scope delle variabili e la funzione che è una idea centrale nella programmazione orientata agli oggetti.

Così come abbiamo coperto tutti gli elementi fondamentali della programmazione in PHP, adesso siamo pronti a muov erci di più nella programmazione orientata agli oggetti dopo che dopo applicheremo i concetti e le tecniche appresi in fase di sviluppo di WordPress. 

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.