WordPress för webbapplikationsutveckling den konceptuella modellen

Med människor som börjar inse WordPress 'potential som en applikationsstiftelse snarare än bara ett innehållshanteringssystem eller en bloggplattform, fokuserar denna serie på hur WordPress kan användas för sådana projekt.

En av de viktigaste sakerna att notera är att WordPress inte är tänkt att vara den slutgiltiga lösningen för att bygga webbapplikationer. Faktum är att jag inte tror några Stiftelse eller ramverk är tänkt att vara de slutgiltig lösning.

Istället har vi ett antal olika val, som alla lånar sig bättre situationer än andra, och WordPress är inte annorlunda. Under hela serien fortsätter vi att titta på hur webbprogram kan byggas med WordPress, och vilka situationer lånar sig bäst för stiftelsen. Vi måste dock fortsätta vår diskussion om hur WordPress fungerar så att vi sedan kan prata om hur man bygger applikationer ovanpå det.

I den föregående artikeln diskuterade vi hur många ramverk som erbjuder ett MVC-tillvägagångssätt för utveckling, men vi tittade också på WordPresss händelsesdrivna modell. I det här inlägget kommer vi att ta en djupare titt på det händelsesdrivna paradigmet som WordPress sysslar med, och varför det här är viktigt.

Sanningen är att många människor är bekanta med detta paradigm, de är bara inte bekanta med namngivningskonventionerna. I slutet av den här artikeln borde vi ha en klar förståelse för vilken händelsedriven programmering, hur det fungerar, hur det implementeras i WordPress, och hur vi behöver tänka på detta när det kommer från andra mönster som modellvisning -Kontrollant.


Event-Driven Programmering

I det sista inlägget sammanfattade vi händelsesstyrd programmering med följande idé:

I stället fungerar händelsesdriven programmering utifrån premissen att "något som hände." Därför namnet för åtgärder i WordPress lingo (naturligtvis har vi också filter, men jag täcker dem kort).

Och det är bra för en fungerande definition av händelser, särskilt på hög nivå. Men om du vill ta en djupare titt på hur det här ser ut från en praktisk ställning - det vill säga från hur WordPress implementerar det - är det förmodligen det bästa du kan göra förstå evenemang.

Men ännu mer än det är det viktigt att förstå WordPresss livscykel, där händelser händer och hur vi - som utvecklare - kan haka i dem för att utföra en viss uppgift.


Förstå händelser

Som vi redan har nämnt, i händelse-driven programmering, är tanken på händelser helt enkelt det något har hänt. Vi fortsätter att repetera det, men vad betyder det egentligen?

I samband med en enda sidbelastning finns det ett antal saker som uppstår:

  • JavaScript och stylesheets hämtas
  • Frågor körs mot databasen för att hämta data
  • Informationen från databasen görs inom ramen för markeringen
  • Sidan presenteras för användaren
  • … och så vidare

Alla dessa kan betraktas som händelser, men var och en består av en egen uppsättning mindre händelser - det vill säga du kan få verkligen detaljerad om när något händer.

Ta till exempel idén om att göra en typisk begäran om public-facing för en WordPress-driven sida. Om du tittar på det tillhörande Codex-dokumentet märker du att det finns cirka 50 åtgärder som inträffar, och det gör det inte Inkludera även post- eller sidspecifika åtgärder.

Var och en av dessa åtgärder kan betraktas som en händelse, och i händelsestyrd programmering är händelser vanligtvis utsatta på ett sådant sätt att de tillåter oss att haka i dem och manipulera information innan det görs för kunden.

Därför namnet på krokar.

Naturligtvis, i WordPress, finns krokar i två sorter: Åtgärder och filter. Även om denna serie inte handlar om en solid handledning på var och en av dessa, så är det är viktigt att känna igen skillnaden i dem som de avser att arbeta med WordPress.

Åtgärder

Åtgärder är en typ av krok som betyder att något har hänt, och när den där något inträffar har vi möjlighet att registrera vår egen funktionalitet så att vi kan injicera vår egen kod (eller till och med förhindra att vissa saker händer).

Som jag sammanfattade i min serie om åtgärder och filter:

Åtgärder är händelser i WordPress-livscykeln när vissa saker har inträffat - vissa resurser är laddade, vissa faciliteter är tillgängliga och, beroende på hur tidigt åtgärden har uppstått, har vissa saker ännu inte laddats.

Det är viktigt att förstå tillgängliga åtgärder så att du vet när den bästa tiden att koppla in i en viss händelse är så att du inte hindrar sidans prestanda, eventuellt misslyckas med andra data som kommer nedströms eller så att du är ordentligt hanterar informationen vid rätt tidpunkt och plats.

filter

Filter, å andra sidan, en typ av krok som tillåter oss att ta emot en viss bit data, manipulera den och sedan returnera den till WordPress innan den görs till webbläsaren.

För exemplet, om du tittar på innehållet filtrera, så märker du att om du kopplar en funktion till den här åtgärden kommer din funktion att ges innehållet. Det innebär att du kan manipulera innehållet genom att infoga information i det, ta bort information från det eller något liknande innan du skickar tillbaka det till WordPress för att göra det till webbläsaren.

På samma sätt sammanfattade jag filter i min serie om åtgärder och filter som följande:

Filter är funktioner som WordPress skickar data igenom under vissa punkter i sidans livscykel. De är främst ansvariga för att avlyssna, hantera och returnera data innan de gör det till webbläsaren eller spara data från webbläsaren till databasen.

Så med allt det sagt är handlingar och filter både typer av händelser som uppstår inom WordPress livscykel som tillåter oss att krok in i dem och sätt in vår egen kod för körning innan den har gjorts till webbläsaren.

Kort sagt är termen "krokar" en allmän term som hänvisar till både handlingar och filter som var och en tjänar ett annat syfte.


Analogus till MVC?

Nu är en av de vanligaste sakerna jag har sett från människor som kommer från en annan bakgrund, som Rails, CakePHP, ASP.NET eller andra MVC-ramar, hur man kartlägger sin konceptuella modell av MVC till händelsen- driven modell av WordPress.

Däremot menar jag att de försöker hitta analogier mot modeller, synpunkter och kontroller i det händelsesdrivna paradigmet. Till exempel kan vissa försöka göra följande:

  • "Om visningar är avsedda för att visa data, då är det säkert mallar finns för i WordPress. " Jo, ja, till viss del, men mallar påverkas också av olika krokar och de kallar ner vissa funktioner.
  • "Om krokar används för att orkestrera data mellan databasen och vyerna, då är de som kontroller. " Sortera, men de kan också representera dataspecifik logik som liknar en modell, och de kan också användas som hjälpare för att formatera information som är mer besläktad med hjälpare än de faktiska kontrollerna.
  • "Men om mallarna, eller åsikterna, kan ringa in i regulatorerna eller krokarna, var vart lämnar modellen?" Exakt, du kan rationalisera likheter allt du vill, och du kan rationalisera några bra, men sanningen är att WordPress inte är MVC.

I detta syfte rekommenderar jag starkt att försöka undvika att tänka på WordPress i samband med ett annat mönster. Den har sin egen mönster. Tänk på det i dessa termer.

Det handlar inte om retrofitting!

Kort sagt, att komma till WordPress från en annan ram som använder ett annat designmönster eller ett annat paradigm är bra, men det handlar inte om att WordPress passar din tidigare erfarenhet.

Du kan inte ommontera ett designmönster till en annan och förvänta dig att få högkvalitativa resultat.

Programvara fungerar inte så.

I stället, precis som du gör med andra ramar, du måste Tänk på hur WordPress fungerar för att korrekt bygga saker på - och för - WordPress. Senare i serien tar vi en titt på varför WordPress är ett bra alternativ för webbapplikationer, men innan jag anser att det är viktigt att förstå det mönster som WordPress implementerar och hur man bäst kan dra nytta av det.


Praktiska exempel på händelser

I nästa inlägg tittar vi på några exempel på hur vi kan koppla till händelser som tillhandahålls av WordPress. Dessa kommer att vara mycket inledande och mest erfarna WordPress-utvecklare kommer troligen redan att känna många av dem. Det kommer dock att ge en solid uppsättning exempel på hur åtgärder och filter - och därmed händelser - fungerar i WordPress.

Därefter fortsätter vi vår diskussion om funktioner och faciliteter som WordPress erbjuder för att bygga webbapplikationer.