WordPress per lo sviluppo di app Web il modello concettuale

Con le persone che iniziano a realizzare il potenziale di WordPress come una base applicativa piuttosto che un semplice sistema di gestione dei contenuti o una piattaforma di blogging, questa serie si concentra sul modo in cui WordPress può essere utilizzato per tali progetti.

Una delle cose più importanti da notare è che WordPress non è pensato per essere la soluzione definitiva per la creazione di applicazioni web. In effetti, non penso qualunque la fondazione o il quadro devono essere il soluzione definitiva.

Invece, abbiamo un certo numero di scelte diverse, che si prestano a situazioni migliori di altre, e WordPress non è diverso. Durante questa serie, continueremo a dare un'occhiata a come le applicazioni web possono essere create con WordPress e quali situazioni si prestano meglio alla base. Tuttavia, dobbiamo continuare la nostra discussione su come funziona WordPress in modo che possiamo iniziare a parlare di come compilare le applicazioni su di esso.

Nel precedente articolo, abbiamo discusso di quanti framework offrono un approccio MVC allo sviluppo, ma abbiamo anche esaminato il modello event-driven di WordPress. In questo post, daremo un'occhiata più approfondita al paradigma event-driven utilizzato da WordPress e perché questo è importante.

La verità è che molte persone hanno familiarità con questo paradigma, semplicemente non hanno familiarità con le convenzioni di denominazione. Entro la fine di questo articolo, dovremmo avere una chiara comprensione di cosa sia la programmazione basata sugli eventi, come funziona, come è implementata in WordPress e come dobbiamo pensarci quando provengono da altri pattern come Model-View -Controller.


Programmazione guidata dagli eventi

Nell'ultimo post, abbiamo riassunto la programmazione basata sugli eventi con la seguente idea:

Invece, la programmazione basata sugli eventi funziona partendo dal presupposto che "qualcosa come è successo". Da qui il nome per Azioni nel gergo WordPress (ovviamente, abbiamo anche dei filtri, ma li coprirò per un momento).

E va bene per una definizione operativa degli eventi, soprattutto ad alto livello. Tuttavia, se vuoi dare un'occhiata più approfondita a ciò che sembra da un punto di vista pratico, cioè da come viene implementato da WordPress, allora la cosa migliore che puoi fare è capire eventi.

Ma anche più di questo, è importante capire il ciclo di vita della pagina WordPress, dove accadono gli eventi e come noi, in quanto sviluppatori, possiamo collegarci a loro per eseguire un determinato compito.


Comprendere gli eventi

Come abbiamo già detto, nella programmazione basata sugli eventi, l'idea degli eventi è semplicemente quella qualcosa è successo. Continuiamo a ribadirlo, ma cosa significa veramente??

Nel contesto di un caricamento di una sola pagina, ci sono un certo numero di cose che si verificano:

  • JavaScript e fogli di stile vengono recuperati
  • Le query vengono eseguite sul database per recuperare i dati
  • Le informazioni dal database vengono visualizzate nel contesto del markup
  • La pagina è presentata all'utente
  • … e così via

Tutti questi possono essere considerati eventi, ma ognuno di questi è costituito da una serie di eventi minori, ovvero, è possibile ottenere veramente dettagliato su quando succede qualcosa.

Prendiamo, per esempio, l'idea di rendere una tipica richiesta pubblica per una pagina alimentata da WordPress. Se si guarda il documento Codex associato, si noterà che ci sono circa 50 azioni che avvengono, e questo succede non includi anche azioni post o specifiche della pagina.

Ognuna di queste azioni può essere considerata un evento, e nel mondo della programmazione basata sugli eventi, gli eventi sono solitamente esposti in modo tale da consentirci di agganciarli e manipolare le informazioni prima che siano rese al cliente.

Da qui il nome per gli ami.

Naturalmente, in WordPress, gli hook sono disponibili in due varianti: Actions e Filters. Anche se questa serie non riguarda un solido tutorial su ognuno di questi, è è importante riconoscere la differenza in loro in quanto si riferiscono a lavorare con WordPress.

Azioni

Le azioni sono un tipo di gancio che significa che qualcosa è successo, e quando quello qualcosa si verifica, abbiamo la possibilità di registrare le nostre funzionalità in modo tale da poter inserire il nostro codice (o addirittura impedire che accadano determinate cose).

Come ho sintetizzato nella mia serie su Azioni e filtri:

Le azioni sono eventi nel ciclo di vita della pagina di WordPress quando si verificano determinati eventi: determinate risorse sono caricate, alcune strutture sono disponibili e, a seconda di come si è verificata l'azione, alcune cose devono ancora essere caricate.

È importante comprendere le azioni disponibili in modo da sapere quando il momento migliore per collegarsi a un determinato evento è in modo tale da non ostacolare le prestazioni della pagina, potenzialmente manipolando altri dati che stanno arrivando a valle o in modo da essere correttamente gestire le informazioni al momento e nel luogo giusto.

filtri

Filtri, d'altra parte, un tipo di hook che ci permette di ricevere un dato dato, manipolarlo, e poi restituirlo a WordPress prima di renderlo al browser.

Per esempio, se dai un'occhiata il contenuto filtro, quindi noterai che se si aggancia una funzione a questa particolare azione, la funzione verrà assegnata al contenuto. Ciò significa che sarete in grado di manipolare il contenuto inserendo informazioni in esso, rimuovendo informazioni da esso, o qualcosa di simile, prima di restituirlo a WordPress per renderlo al browser.

Allo stesso modo, ho riassunto i filtri della mia serie su Azioni e filtri come segue:

I filtri sono funzioni che WordPress trasmette i dati durante determinati punti del ciclo di vita della pagina. Sono i principali responsabili dell'intercettazione, della gestione e della restituzione dei dati prima di inviarli al browser o di salvare i dati dal browser al database.

Quindi, con tutto ciò che detto, azioni e filtri sono tutti e due tipi di eventi che si verificano all'interno del ciclo di vita di WordPress che ci consentono di gancio in essi e inserire il nostro codice per l'esecuzione prima di renderlo reso al browser.

In breve, il termine "ganci" è un termine generico che si riferisce sia ad azioni che a filtri ciascuno dei quali ha uno scopo diverso.


Analogico a MVC?

Ora, una delle cose più comuni che ho visto da persone che provengono da uno sfondo diverso come Rails, CakePHP, ASP.NET o altri framework MVC, è come mappare il loro modello concettuale di MVC all'evento- modello guidato di WordPress.

Con ciò intendo che cercano di trovare analogie con modelli, visualizzazioni e controller nel paradigma basato sugli eventi. Ad esempio, alcuni potrebbero provare a fare quanto segue:

  • "Se visualizzazioni sono pensati per mostrare i dati, quindi sicuramente è questo modelli sono per in WordPress. " Beh, sì, in una certa misura, ma i modelli sono anche influenzati da vari hook e richiamano determinate funzioni.
  • "Se ganci sono usati per orchestrare i dati tra il database e le viste, quindi sono come i controller. " Un po ', ma possono anche rappresentare una logica specifica dei dati simile a un modello, e possono anche essere usati semplicemente come aiutanti per formattare le informazioni che sono più affini agli assistenti rispetto ai controllori effettivi.
  • "Ma se i modelli, o le viste, possono chiamare i controller, o i ganci, allora dove lascia il modello?" Esattamente, puoi razionalizzare le somiglianze che vuoi e puoi razionalizzare alcune buone, ma la verità è che WordPress non è MVC.

A tal fine, consiglio vivamente di evitare di pensare a WordPress nel contesto di un altro pattern. Ha il suo modello. Pensaci in questi termini.

Non riguarda l'aggiornamento!

In breve, venire a WordPress da un altro framework che utilizza un altro modello di progettazione o un altro paradigma va bene, ma non si tratta di rendere WordPress adatto alla tua precedente esperienza.

Non è possibile adattare un modello di progetto a un altro e si prevede di ottenere risultati di alta qualità.

Il software non funziona così.

Invece, proprio come fai con altri quadri, tu dovere pensa in termini di come funziona WordPress per costruire correttamente le cose su e WordPress. Più avanti nella serie, daremo un'occhiata al motivo per cui WordPress costituisce una solida opzione per le applicazioni web, ma prima credo sia importante capire il modello implementato da WordPress e come sfruttarlo al meglio.


Esempi pratici di eventi

Nel prossimo post, vedremo alcuni esempi su come possiamo collegare gli eventi forniti da WordPress. Questi sviluppatori di WordPress molto introduttivi e più esperti probabilmente conosceranno già molti di loro; tuttavia, fornirà una solida serie di esempi su come le azioni e i filtri - e quindi gli eventi - funzionano in WordPress.

Dopodiché, continueremo la nostra discussione sulle funzionalità e le funzionalità offerte da WordPress per la creazione di applicazioni Web.