Negli ultimi 12 post, abbiamo esaminato le basi del PHP, le basi della programmazione orientata agli oggetti, come farlo nel contesto di WordPress, e abbiamo anche guardato l'inizio di più concetti intermedi come come eredità.
A questo punto, è giunto il momento di chiudere la serie di questo principiante, ma prima di farlo, vorrei fornire un riassunto di ciascuno degli articoli in modo che non solo abbiamo un ripasso di tutto ciò che abbiamo fatto, ma in modo che abbiamo anche una singola pagina di riepilogo a segnalibro per riferimento.
Detto ciò, passiamo in rassegna tutto ciò che abbiamo trattato in questo articolo. Includeremo i link all'articolo originale, brevi descrizioni e altre informazioni pertinenti.
Nel primo post della serie, abbiamo discusso di dove eravamo diretti con gli articoli che dovevano seguire. In breve, abbiamo fornito uno schema di alto livello su ciò che avremmo discusso, e poi siamo passati da lì.
Forse la cosa più importante da prendere in questo articolo era capire "da dove comincio?" Qual è una domanda che molte persone chiedono quando si inizia con la programmazione.
A quello, abbiamo detto:
Ma quelli che ci sono stati per un periodo di tempo significativo spesso dimenticano com'era quando cercavano di capire come decifrare il codice, capire perché qualcosa è stato scritto nel modo in cui è stato, Come l'autore sapeva usare quale funzione e dove, e determinare la logica dietro alcune decisioni di implementazione.
Siamo stati tutti lì ad un certo punto, giusto? Abbiamo esaminato il codice, cercato di capire il flusso del controllo e una volta ho chiesto "da dove comincio?"
E lo scopo di questa serie è di rispondere a questa domanda.
E questo è esattamente ciò che intendevamo fare con i seguenti punti che sono stati trattati ciascuno nel loro articolo.
Lo scopo di questo post era definire le basi della programmazione orientata agli oggetti: le classi. Innanzitutto, abbiamo detto che le classi sono in genere definite come le seguenti:
Una classe è un progetto per la creazione di un oggetto.
Ma abbiamo anche riconosciuto che questo è particolarmente confuso per la maggior parte delle persone particolarmente se stanno solo iniziando la programmazione orientata agli oggetti.
Quindi, invece, abbiamo parlato di classe in termini di quali caratteristiche definisce:
Quindi generalizziamo questa idea agli oggetti. In effetti, sostituiamo una parola con un'altra:
Un sostantivo è un oggetto.
Un aggettivo e un attributo (o una proprietà).
Un verbo è un metodo (o una funzione).
Inoltre, abbiamo esaminato sia i buoni che i cattivi esempi su ciò che definisce una classe, e abbiamo lavorato sulla definizione di un modello mentale per le classi di immagini quando si lavora con loro
Questo alla fine ha gettato le basi per il plugin che avremmo scritto in futuro. Ma prima, dovevamo assicurarci di avere una solida comprensione delle basi del PHP prima di passare alla funzionalità più avanzata delle classi.
In questo articolo, abbiamo parlato dei due tipi che esistono all'interno di WordPress:
E poi abbiamo definito ciascuno di questi come tale:
I tipi di dati semplici sono definiti come tali perché i dati che rappresentano sono, lo sai, semplice. Vale a dire che normalmente cadrà sotto la bandiera di vero, falso, decimali, e parole e / o frasi.
E poi abbiamo detto:
I due principali tipi di dati complessi su cui ci concentreremo in questa serie come matrici e oggetti. Ce ne sono altri, ma sono al di fuori dell'ambito di questa serie, quindi se sei interessato, allora sentiti libero di dare un'occhiata al manuale PHP, ma ti avverto: se sei un principiante assoluto, il contenuto potrebbe sembrare un po 'travolgente.
In breve, esempi di quanto sopra possono essere illustrati come:
Naturalmente, questi sono principalmente utili una volta che iniziamo ad usarli nel contesto di funzionalità più avanzate come istruzioni condizionali e strutture di controllo.
Nel primo articolo del Strutture di controllo serie, abbiamo parlato di dichiarazioni condizionali.
Innanzitutto, ricorda che:
"Strutture di controllo" è un termine elaborato che descrive come possiamo, ahem, controllare come il codice scorre attraverso il nostro programma in base a una serie di fattori.
Le due strutture di controllo di cui abbiamo parlato sono se poi
dichiarazioni e scatola dell'interruttore
dichiarazioni, quindi abbiamo esaminato esempi di ciascuno. Inoltre, li abbiamo utilizzati in alcuni dei codici che abbiamo scritto nel nostro plug-in o nel nostro esempio di ereditarietà.
Nella stessa serie, abbiamo parlato di loop. Ricorda:
Supponiamo che abbiamo un set di dati, forse un set di 10 post, e che vogliamo scorrere e stampare il titolo e la data di ogni post. I loop ci permettono di fare questo.
L'elenco dei loop a cui abbiamo guardato incluso:
per
per ciascuno
fare
mentre
E abbiamo esaminato esempi di ciascuno e come usarli mentre si scorreva attraverso una varietà di strutture di dati.
Dopo aver trattato alcuni aspetti fondamentali dello sviluppo di PHP, passiamo alle funzioni di copertura - che possono ancora essere utilizzate nella programmazione procedurale - e agli attributi, che sono unici per la programmazione orientata agli oggetti.
Per riassumere, le funzioni vengono utilizzate per completare un'unità di lavoro, ma utilizzano anche alcune delle strutture sopra menzionate per aiutare a completare il suddetto lavoro:
Variabili, condizioni, loop e così via sono anche responsabili del completamento di un singolo lavoro unitario; tuttavia, ognuno di questi lavora in congiunzione l'uno con l'altro per ottenere qualcosa di leggermente più grande di loro.
Abbiamo quindi esaminato un esempio di varie funzioni, alcune estremamente semplici, altre più complesse che hanno sfruttato tutti i tipi, le strutture di controllo e i loop sopra elencati..
Ma non è tutto: poiché le funzioni possono esistere all'interno di una classe e aiutare una classe a completare il proprio lavoro, lavorano anche in congiunzione con gli attributi (che sono gli aggettivi di un oggetto, se si richiama da prima nell'articolo).
La cosa sugli attributi è questa:
Non sono altro che variabili come abbiamo visto in precedenza nella serie, e possono contenere qualsiasi tipo di valore sia un tipo di dati primitivo come una stringa, un intero, un valore booleano o può fare riferimento a un tipo di dati più complesso come un array o un altro oggetto.
Il fatto è che non sono bloccati in una funzione. Invece, vivono a livello di classe. E quando risiedono a livello di classe, c'è un livello di ambito che loro - insieme con le funzioni - devono avere.
Da lì, abbiamo iniziato a parlare di scope.
In breve, scope si riferisce a come le variabili e le funzioni possono essere accessibili da oggetti di terze parti o oggetti figlio all'interno del programma.
Nell'articolo, abbiamo anche esaminato un diagramma di alto livello e alcuni codici sorgente che hanno dimostrato il punto.
La chiave da asporto; tuttavia, è possibile che lo scope abbia tre diversi gusti:
pubblico
che è disponibile per la classe stessa e per tutte le classi di terze partiprotetta
che è disponibile per la classe stessa e per tutte le sottoclassiprivato
che è disponibile solo per la classe in cui è definitoQuesto è diventato ancora più chiaro quando abbiamo iniziato a sviluppare il nostro plugin usando ciò che abbiamo imparato.
Nel Costruire il plugin serie, per prima cosa abbiamo parlato esattamente di cosa stavamo effettivamente costruendo e poi abbiamo effettivamente iniziato a implementare il plugin.
Durante questo processo, abbiamo appreso l'importanza di pianificare il plug-in prima di iniziare effettivamente l'implementazione in modo da avere una tabella di marcia, di sorta, al fine di sapere dove siamo diretti.
Dopo aver fatto ciò, abbiamo iniziato l'effettiva implementazione delle idee che avevamo delineato al punto in cui disponevamo di un plug-in completamente funzionale che copriva esattamente tutto ciò che avevamo coperto fino a questo punto.
In effetti, abbiamo reso disponibile il plug-in per il download su GitHub.
Ma non avevamo ancora finito. Successivamente, abbiamo dovuto documentare il plug-in utilizzando i commenti di codice appropriati per spiegare cosa fanno ciascuno dei nostri file, classi, attributi e metodi.
In questa serie di articoli, abbiamo prima parlato degli standard PSR e degli standard di codifica di WordPress e abbiamo iniziato a documentare le basi del nostro plugin.
Tuttavia, non è stato fino alla seconda parte della serie che abbiamo iniziato a utilizzare le strategie di documentazione come previsto dagli standard di codifica di WordPress. In questo post, abbiamo completato il resto della nostra documentazione fornendo commenti per ogni classe, attributo, funzione e persino richiedere
dichiarazione che esiste all'interno del plugin.
In definitiva, questo sviluppo completo del plugin ci ha permesso di trasferire la nostra discussione su un argomento più intermedio.
Nei due post successivi abbiamo trattato uno degli argomenti più intermedi della programmazione orientata agli oggetti: Ereditarietà. Questo non è stato pensato per essere un primer all inclusive sull'argomento, ma è stato pensato per essere sufficiente per aiutare quelli di voi con un interesse in erba nella programmazione orientata agli oggetti in PHP a familiarizzare con il suo funzionamento.
Nel primo articolo abbiamo dato un'occhiata ad alcuni dei fondamenti e al modo in cui è utilizzato in tutta l'applicazione WordPress in particolare quando si utilizzano i widget.
Nell'articolo finale, abbiamo costruito la nostra implementazione di ereditarietà che, sebbene molto semplicistica, ha fornito una dimostrazione praticabile su come funziona l'ereditarietà all'interno di PHP.
Ovviamente, abbiamo coperto Un sacco di contenuto in questa serie. Si spera che quelli di voi che hanno appena iniziato a lavorare in WordPress e in generale alla programmazione orientata agli oggetti lo abbiano trovato utile.
Anche se non mi oppongo all'esecuzione di un'altra serie di argomenti avanzati, sono più curioso dei tuoi commenti, commenti e domande sulla serie corrente. Sentiti libero di offrirlo nel feed dei commenti.
Per quanto riguarda le future serie, fammelo sapere e vedremo cosa possiamo fare.
Oltre a questo, buona fortuna con i tuoi sforzi con WordPress, programmazione orientata agli oggetti e così via. Non vedo l'ora di vedere cosa ti viene in mente!