WordPress e programmazione orientata agli oggetti: una panoramica

Pubblicato: 2021-04-20

Se sei uno sviluppatore WordPress è probabile che tu scriva il tuo codice in modo procedurale. Impostare alcuni semplici passaggi ordinati e seguirli per ottenere l'output desiderato e risolvere un problema. Un semplice esempio è un loop di WordPress come quello mostrato di seguito:

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

In un ciclo, per prima cosa controlli se hai post che corrispondono alla query in esecuzione e, in tal caso, inizi a scorrere i post con il ciclo while. Lo stesso vale per ogni funzione personalizzata che inserirai nel file functions.php .

In questo articolo passeremo dalla programmazione procedurale e osserveremo uno stile di programmazione chiamato Object-Oriented Programming (OOP). Esamineremo come questo sia diverso da quello che hai usato finora come stile di programmazione e daremo un'occhiata ad alcuni dei suoi vantaggi. Ma soprattutto, spiegheremo come funzionano i concetti orientati agli oggetti in un ambiente WordPress e la relazione tra loro.

Quello che vorremmo stabilire prima di approfondire questo argomento è che è importante conoscere il ruolo della programmazione orientata agli oggetti e quando è adatta per essere utilizzata. Imparare a costruire un plugin o un tema orientato agli oggetti può essere adatto al tuo progetto, ma è importante che tu capisca quando questo è il caso. Si spera che questo articolo ti aiuti a capire quando e perché un determinato progetto può essere adatto per essere scritto in codice orientato agli oggetti.

Il problema

Lo stesso WordPress ti ha già spinto a pensare in modo procedurale. E, sebbene WordPress utilizzi sempre oggetti PHP, non ne consegue che WordPress stesso sia orientato agli oggetti. Questa è una comune interpretazione errata di ciò di cui tratta OOP e il motivo per cui molte persone credono che WordPress sia orientato agli oggetti anche se non lo è.

È importante chiarire che non stiamo dicendo che dovresti astenerti dall'usare la programmazione procedurale, ma è vero che ci sono dei limiti in questo stile di codifica. Ad esempio, quando si personalizza un tema o un plug-in, è probabile che si otterrà l'output HTML desiderato scrivendo il codice in modo procedurale. Ma per quanto riguarda la scalabilità e la manutenzione futura?

Quando si crea un plug-in personalizzato è molto importante fare un bilancio e valutare quanto sarà scalabile. Ad esempio, probabilmente vorrai essere in grado di far crescere il tuo plug-in aggiungendo ulteriori funzionalità man mano che il plug-in matura. È a questo punto che inizierai ad avere difficoltà a organizzare il tuo codice quando codifichi proceduralmente.

Ma anche se non stai codificando plug-in, con la programmazione procedurale corri sempre il rischio di raggiungere un punto in cui non sei più sicuro di come tutto combacia. Di conseguenza, ogni piccola modifica apportata potrebbe avere conseguenze indesiderate.

La programmazione orientata agli oggetti viene utilizzata per risolvere problemi più complicati. Può condividere lo stesso obiettivo con la programmazione procedurale, ma in molti casi offre un modo di lavorare superiore. Ti consente di creare soluzioni audaci a un problema che sono riutilizzabili, organizzate e sicure.

Come la programmazione orientata agli oggetti risolve i problemi

La programmazione orientata agli oggetti ha due concetti importanti: Classi e Oggetti .

Le classi sono essenzialmente un modello utilizzato per creare oggetti. Ogni oggetto ha i propri metodi e set di proprietà e il valore di tali proprietà può variare.

Quindi, prima di andare avanti, è fondamentale assicurarsi di capire cos'è un Oggetto. Analizziamo una semplice frase come esempio:

'Mangio mele verdi'.

Apple è l'Oggetto, il verde è il colore dell'Oggetto (una proprietà dell'Oggetto) e il verbo 'mangiare' è il metodo (funzione).

Una classe definisce le proprietà e il comportamento di tutti gli oggetti che la utilizzano. La risoluzione dei problemi con OOP si ottiene combinando questi "mattoni" di programmazione nel modo corretto.

Prima di immergersi, un primo passo importante è prendersi del tempo per progettare la soluzione proposta. In sostanza, quello che devi fare è:

  1. Definisci il problema e cosa dovrebbe fare il plugin per risolverlo
  2. Descrivi le classi e le loro relazioni, nonché l'interazione tra gli oggetti
  3. Trasforma tutto in codice
  4. Rivedere e testare il progetto

Mentre sei in questo passaggio, tieni presente che sarai fortunato se lo otterrai perfetto al primo tentativo! Dovrai ricominciare da capo fino a quando non avrai il concetto giusto che risolverà il problema. Consideralo come parte di un processo creativo che ti offrirà una serie di strumenti che potrai utilizzare in seguito come una squadra senza conflitti.

In un prossimo articolo relativo all'OOP dimostreremo un semplice esempio che darà vita a tutta la teoria di cui sopra.

Le caratteristiche della programmazione orientata agli oggetti

Prima di entrare nelle caratteristiche della programmazione orientata agli oggetti, vediamo se possiamo chiarire ulteriormente come funziona con una semplice metafora.

Diciamo che abbiamo una caldaia che usiamo per far bollire dell'acqua. Quando usiamo la macchina, lo facciamo in un certo modo, l'unico modo che il produttore ci consente. Non possiamo ignorare il modo in cui la caldaia funziona quando premiamo il pulsante 'On' e, ad essere onesti, non vorremmo o non avremmo bisogno di farlo. Questo ci dà due vantaggi molto importanti.

Innanzitutto, la funzionalità limitata (es. far bollire dell'acqua) significa che il sistema è sia più robusto che più sicuro. Il set di funzionalità limitato e la fornitura di un solo pulsante "On/Off" significano che, come utenti, non possiamo avvicinarci al meccanismo della caldaia. Per impostazione predefinita, ciò significa che c'è meno da sbagliare e il sistema è più robusto nel suo insieme. La semplicità dell'operazione lo rende anche molto più intuitivo con praticamente chiunque sia in grado di usarlo.

Ospita il tuo sito web con Pressidium

GARANZIA DI RIMBORSO DI 60 GIORNI

GUARDA I NOSTRI PIANI

Tenendo presente questo, vediamo come si collega alla programmazione orientata agli oggetti. In teoria, OOP ha tre caratteristiche preziose: incapsulamento, ereditarietà e polimorfismo .

Ciò che fa Encapsulation è raggruppare i dati e il comportamento all'interno di una singola entità. All'interno della Classe è possibile definire come verrà utilizzata (pulsante caldaia) e controllarne la visibilità utilizzando l'etichettatura Pubblica, Protetta o Privata sulle Classi. Questo è ciò che lo rende anche un sistema molto sicuro perché ti dà la possibilità di controllare chi ha accesso. Ciò significa anche che è più facile da mantenere e anche da usare.

L'ereditarietà consiste nell'aiutarti a riutilizzare il codice tra le tue classi. Uno di questi esempi è quando una classe estende un'altra classe. Potresti averlo usato durante l'estensione della Walker Class per modificare l'output HTML di dati ad albero come un menu o una struttura di commenti. Comprendere la relazione tra le tue classi ti consentirà di creare codice orientato agli oggetti riutilizzabile.

Infine, il polimorfismo è ciò che fa lavorare insieme tutte queste relazioni, ciò che definisce ciò che le tue classi hanno in comune, come riutilizzare questi elementi comuni e se sono correlati a qualcos'altro.

Conclusione

Senza alcuni esempi concreti è probabile che tutto quanto sopra sia ancora un po' confuso. Tuttavia, è comunque importante spiegare la teoria alla base della programmazione orientata agli oggetti e negli articoli futuri andremo avanti con alcuni esempi utili in modo da poter vedere come utilizzare questo entusiasmante metodo di programmazione nel mondo reale.

Il nostro obiettivo è che quando concluderai la lettura della nostra serie di articoli sull'OOP, sarai sicuro di utilizzare questo metodo di programmazione in un'ampia varietà di situazioni. Nel frattempo potresti voler continuare la tua lettura di OOP su Wikipedia.

Fare clic qui per leggere la Parte 2 della nostra serie di programmazione orientata agli oggetti