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

Programmazione Orientata agli Oggetti in Wordpress : Le Classi

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Object-Oriented Programming in WordPress.
Object-Oriented Programming in WordPress: An Introduction
Object-Oriented Programming in WordPress: Types

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

Come indicato nel primo post di questa serie, tratteremo il concetto di programmazione orientata agli oggetti nel contesto di WordPress, partendo dalle basi .

Questo significa che se non hai mai sentito parlare di OOP (object-oriented programming ), hai voglia di imparare, sei interessato a WordPress e vuoi sviluppare soluzioni basate su di esso, allora questa è la serie che fa per te .

Nei  prossimi articoli , ci occuperemo di  tutti gli aspetti principali della programmazione orientata agli oggetti. Una volta fatto, vedremo come possiamo applicare quanto imparato, attraverso lo sviluppo di una soluzione funzionante per WordPress.

Ma prima, dobbiamo iniziare con le basi.

Che cosa sono le classi? 

Se chiedessi a 10 sviluppatori diversi la loro definizione di una classe, probabilmente fornirebbero molte risposte simili, ma poche in realtà esprimerebbero la stessa cosa. In realtà, quello che ho sentito ripetere il più spesso quando ero più giovane è questo:

Una classe è un modello per la creazione di un oggetto

In teoria, sembra fantastico, soprattutto se sai che cosa è un oggetto. Ma questo è il problema, non è vero? Stiamo cercando di imparare la programmazione orientata agli oggetti, quindi non c'è alcuna garanzia che noi si  sappia che cosa sia un oggetto;  Pertanto, come possiamo capire che una classe funga da modello per esso?

In un certo senso, è un’ affermazione di principio.

Quindi facciamo qualche passo indietro e cerchiamo di definire che cosa è un oggetto, al fine di definire più chiaramente che cosa è una classe .

Capire gli Oggetti 

L’idea di fondo  del paradigma della programmazione orientata agli oggetti è che noi, come i programmatori,possiamo molto più facilmente modellare le informazioni che vediamo nel mondo reale utilizzando dei  costrutti in un codice.

Ad esempio , nella realtà abbiamo oggetti che possono essere descritti utilizzando gli aggettivi, e gli oggetti sono in grado di eseguire delle azioni.  Anche se questo può essere un clichè, pensiamo per un momento ad una autovettura:

  • ha diversi aggettivi come le dimensioni ed il colore  
  • si può guidare e di può parcheggiare

Ancora,un semplice esempio, ma che dimostra che qualsiasi cosa abbiamo nel mondo reale, può essere solitamente ricondotta ad un sostantivo che può essere descritto con i suoi aggettivi e dalle azioni che esso svolge.

Quindi, generalizziamo questa idea agli oggetti. In realtà sostituiamo una parola con un'altra :

  • Un sostantivo è un oggetto
  • Un aggettivo è un attributo (o una proprietà)
  • Un verbo un metodo (o una funzione)

Abbastanza semplice, giusto? In poche parole, dovremmo essere in grado di descrivere le cose che vediamo nel mondo reale come oggetti all’interno di un paradigma di programmazione . Nota che ci sono linguaggi di programmazione che chiamano gli attributi proprietà e i metodi funzioni. Non ha alcuna importanza, entrambi sono la stessa cosa Semplicemente si riferiscono rispettivamente ad aggettivi circa l’oggetto e alle azioni che esso può intraprendere.

Alcuni Esempi

 La maggior parte dei corsi di programmazione o libri, iniziano sempre con un esempio di come gli oggetti sono pensati per modellare oggetti del mondo reale (un pò come ho fatto in precedenza con l'esempio della macchina).

 E in una certa misura, questo è vero. Per coloro che hanno avuto esperienze di sviluppo, è molto probabile che abbiano familiarità su come modellare le persone nel contesto della nostra applicazione, ma questo va oltre rispetto a quanto stiamo trattando adesso.

Anche se è vero che siamo in grado di utilizzare la programmazione orientata agli oggetti per modellare oggetti del mondo reale, ho scoperto che, sempre più spesso, sto modellando una forma più generalizzata di un oggetto del mondo reale - ad esempio un utente piuttosto che una persona - e che le azioni svolte sono più uniche per loro.

A tal fine, gli esempi che voglio dare in questo articolo e quelli  nel resto di questa serie saranno più orientati verso applicazioni pratiche di programmazione . Nessuno scriverà  un plugin per l’auto e nessuno creerà  un oggetto animale (che è qualcosa che spesso vedete  e sentite  nei corsi di programmazione introduttivi).

Invece, cercheremo  di concentrarci un po’ di più sugli oggetti che hanno maggiori probabilità di essere visti nell’ambito  della programmazione - non nel mondo reale. Non perché la programmazione orientata agli oggetti è debole, ma perché il nostro modo di insegnare è debole .

Buoni Esempi

Naturalmente, questo pone la questione, che cosa costituisce un buon esempio ? Il problema di rispondere a una domanda come questa è che può letteralmente essere una grande, grande varietà di cose

Questo include oggetti quali:

  • un post sul blog, 
  • un documento, ad esempio un curriculum vitae,
  • un autenticatore o sistema di autenticazione,
  • un prodotto,
  • un generatore di password,
  • ...Eccetera. 

E noterai ,  molte di queste cose non esistono nel mondo reale   Ad esempio, i post del blog non sono tangibili. Sono cose che leggiamo sui nostri schermi. Ma questo significa che non hanno proprietà, come una data, un tempo, e un autore? Oppure vuol dire che questi non prevedano azioni come pubblicare e cancellare?

Ovviamente no.

Entrando nel vivo di questa serie,  parleremo  di oggetti  in termini di cose con cui siamo più propensi a lavorare.

Non programmeremo certo un animale - e tanto meno in WordPress - ed in qualsiasi modo durante questa serie :)

Ritorniamo alle Basi

Bene, ora che abbiamo fatto  una breve digressione su cosa sono in realtà gli oggetti, con  buoni e cattivi  esempi; è il momento di iniziare effettivamente a parlare di classi e di come fungano da modelli per gli oggetti.

In programmazione, viene creato un oggetto da una classe Ciò significa che una classe definisce tutte le proprietà che un oggetto ha e le azioni che essa può assumere, e poi il computer creare un oggetto in memoria.

Quando si tratta di classi, è possibile sentire  gli sviluppatori discutere sulla scrittura delle classi, sulla definizione di classi , o sulla costruzione di classi . Sono tutti  termini accettabili.

Dopodicchè, puoi sentire gli sviluppatori parlare di creazione di oggetti. L'atto di creazione di un oggetto è detto inizializzazione di una istanza. Sì - è una parola grossa per un concetto relativamente semplice. Ma pensate in questo modo: quando si dispone di una classe, si dispone di una definizione da cui è possibile creare più istanze di un oggetto. 

Se abbiamo bisogno di tracciare un'analogia con il mondo reale, pensiamo al  progetto  per una casa Esso stabilisce il piano terra, le dimensioni, le pareti, e così via, che  fornisce agli operai le informazioni su come costruire una casa Poi, quando arriva il momento di costruire la casa,  la  squadra di operai erige la casa in base al progetto

E’ lo stesso nel caso di classi, creazione di istanze e oggetti. Le classi sono i progetti, il computer è la squadra di lavoratori edili, e gli oggetti sono la casa. E come più case possono essere costruite da un unico progetto, cosi è il caso per oggetti e classi

Modelli Mentali di Classi e Oggetti

Quando si tratta di scrivere codice, alcune persone sono in grado di immaginare l'oggetto in testa - ed altri, forse no.

Personalmente, penso che questo ha più a che fare con il modo in cui ognuno di noi tende ad imparare ed elaborare le informazioni, ma credo che sia possibile iniziare ad immaginare mentalmente come lavorano insieme i sistemi software, quanto più a lungo si scrive codice.

Qui, non stiamo andando a guardare qualsiasi sistemacomplesso; tuttavia, andiamo a dare un'occhiata ad unesempio di una classe e successivamente ad una rappresentazione visiva di ciò che potrebbe apparire in termini di codice e, in termini di una immagine mentale.

Una classe per un post sul blog 

Dal momento che abbiamo a che fare con WordPress, forse un esempio iniziale di una classe sarebbe uno che rappresenta un post sul blog.

Certo, questo sarà un semplice esempio per spiegare le idee di attributi e funzioni, ma ci occuperemo dei vari costrutti con maggiori dettagli, nei futuri articoli.

Quindi, con quanto detto, diciamo che stiamo creando una classe per un post sul blog. Diciamo anche che il nostro post sul blog avrà un autore, la data in cui è stato pubblicato, se sia o non sia pubblicato, e le azioni da pubblicare e cancellare.

Un esempio di definizione di classe per un post sul blog con questi attributi e funzioni sarà simile a questa:


Per coloro che hanno familiarità con la programmazione orientata agli oggetti, si possono riconoscere alcune delle informazioni di cui sopra, e si può anche riconoscere che ho lasciato fuori alcune cose (come ad esempio il costruttore). Non preoccupatevi di questo - tratteremo questi concetti più tardi.

Per coloro che sono completamente nuovi alla programmazione, questo è ciò che una definizione di base della classe assomiglia Per il momento, non preoccuparti per le parole private e public, le vedremo più avanti.

Invece, concentrati su $author, $publish_date , e $is_published Questi sono gli attributi. Nota che sono posizionati sopra le definizioni delle funzioni nella classe. Questi sono analoghe ad aggettivi che descrivono ilblog_post.

Avanti, abbiamo le funzioni pubblish() e delete(). Queste due funzioni sono le azioni che possono essere utilizzate sulblog_post. Ricordate, proprio come un oggetto nel mondo reale si può spostare (come una macchina si può guidare), un post sul blog può essere pubblicato.

Una rappresentazione visiva 

Che cosa succede quando in realtà s'istanzia  un post sul blog? Vale a dire, quando creiamo un post sul blog nel codice, come possiamo immaginare mentalmente ciò che sta accadendo all'interno del computer.

Per prima cosa, delineare come viene istanziato un post sul blog. Ricordate, istanziato è una parola, proprio come è costruito per i lavoratori edili - è come un oggetto viene creato da una classe.

Quindi, vediamo come possiamo usare la definizione singola classe per creare tre diversi post del blog:

Abbastanza facile da leggere, giusto? Sopra, abbiamo creato due variabili che fanno riferimento a due oggetti  blog_post completamente diversi.

Nota che anche se ne parleremo più la, in un prossimo articolo, la parola new è quello che indica al computer di creare un'istanza di un blog_postdalla nostra definizione della classe.

Quindi, diamo uno sguardo al primo esempio in cui otteniamoil nostro primo esempio di blog_post.

Avviso in questa illustrazione, abbiamo la variabile $first_postche fa riferimento all'istanza del blog_postche è stato creato. Il blog_postesiste nella memoria del computer, ha i suoi attributi disponibili così come i suoi metodi disponibili.

Siamo in grado di accedere a tutti questi tramite la variabile  $ first_post che fa riferimento a questo oggetto. Ne parleremo in dettaglio più avanti nella serie.

E per quanto riguarda il $second_post? Come entra nel contesto della programmazione orientata agli oggetti?

Se si confrontano le due illustrazioni, sembrano più o meno lo stesso, giusto? $first_post fa riferimento una istanza di blog_post, $second_post fa riferimento a una seconda istanza di blog_post anche se entrambe provegono da una singola classe.

Nota , per coloro che sono tecnicamente più astuti, è possibile per entrambe le variabili referenziarsi ad una singola istanza, ma questo non è nello scopo del presente articolo.

Di cosa parleremo dopo? 

In ogni caso, a questo punto, dovremmo avere un elevato  livello di comprensione di ciò che è una classe ed il ruolo che gioca nella programmazione orientata agli oggetti, e come possiamo creare istanze di oggetti che sono accessibili tramite variabili.

Questo ancora non ci mostra come interagire con le classi, però, lo fa? Ci arriveremo, ma prima dobbiamo discutere alcuni degli aspetti più primitivi della programmazione come le stringhe, array, loop e condizionali. 

Ciascuno dei costrutti di cui sopra ci aiuterà dare vita ai nostri oggetti, e una volta trattato ciascuno di questi argomenti, torneremo  sulle classi per completarle ed utilizzarle per un lavoro reale. 

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.