Använda WordPress för webbapplikationsutveckling en recension

Under de senaste månaderna har vi tittat på alla funktioner och aspekter som gör WordPress till en potentiell grund för applikationsutveckling.

Faktum är att vi har spenderat ungefär 15 artiklar som pratar om allt som WordPress erbjuder.

Och även om vi ska granska alla punkter i det här e-postmeddelandet, kanske den största saken att ta bort de byggnadswebbprogram som använder WordPress är annorlunda än att använda många av de populära ramarna som för närvarande är tillgängliga, nämligen att WordPress inte är en ramverk.

Det är en grundval på vilken vi kan bygga; inte ett ramverk som vi bygger på.

Det innebär att vi måste flytta vår modell för att tänka på hur olika komponenter i vår applikation är byggda så att de fungerar optimalt i det sammanhang och den miljö där de körs.

1. Ramverk och stiftelser

I det första inlägget i serien ser vi kort på exakt vad det innebär att vara en ram:

I datorprogrammering är en mjukvarurama en abstraktion där mjukvara som tillhandahåller generisk funktionalitet kan ändras selektivt med ytterligare användarskriven kod, vilket ger applikationsspecifik mjukvara. En programvara ram är en universell, återanvändbar mjukvaruplattform för att utveckla applikationer, produkter och lösningar. Programvaruramar inkluderar stödprogram, kompilatorer, kodbibliotek, verktygssatser och API-gränssnitt för applikationsprogrammering som samlar alla olika komponenter för att möjliggöra utveckling av ett projekt eller en lösning.

Och vad det innebär att vara en grund:

Kort sagt kan programvara byggas på ramar, mjukvaran kan förlänga grunden.

Dessa två definitioner satte scenen för hur vi började titta på WordPress, hur det byggdes, de designmönster det implementerar och hur vi behöver justera vår konceptmodell så att vi tänker på den underliggande kodbasen korrekt så att Vi utnyttjar det som vi kan för det arbete vi måste göra.

2. Rethinking Architecture

Som med de flesta webbapplikationer är WordPress strukturerad på ett liknande sätt:

  1. Databaslagret
  2. Applikationslagret
  3. Presentationslagret

Men när det gäller att bygga applikationer ovanpå WordPress förändrar vi saker och ting upp lite. Det vill säga att även om WordPress upprätthåller samma struktur och vi kan bygga egna lösningar med egna strategier, designmönster och vad som inte kommer vi att haka i WordPress-applikationen lite för att vår egen affärslogik ska kunna brinna , och för att visa saker i vår egen presentationsskikt.

För att göra detta är det viktigt att förstå designmönstret som driver WordPress. Och även om MVC och dess varianter är alla raserier dessa dagar följer WordPress en annan konvention.

3. Den konceptuella modellen (händelser, åtgärder och filter)

I en uppföljningsartikel om WordPress 'arkitektur diskuterade vi hur WordPress använder händelsesstyrd programmering.

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).

Specifikt talade vi om hur detta leder oss till idén om hur, i programmering, någonting händer och då kan vi dra nytta av de viktigaste punkterna.

I WordPress kallas dessa speciella egenskaper krokar och kan definieras på två sätt:

  1. Åtgärder anger att vissa saker som lastning av vissa uppgifter eller förberedelse av vissa funktioner är tillgängliga.
  2. Filter är punkter i WordPress-programets livscykel som avlyssnar, hanterar och returnerar data innan det är webbläsaren eller databasen.

Vi ska närmare bestämt diskutera var och en av dessa. Genom att använda längre definitioner, kodexempel och några av de vanligaste krokarna som finns tillgängliga, har vi granskat hur de ska användas var och en av dem, och hur de kan gynna oss när vi arbetar med våra egna webbapplikationer.

5. Användarhantering, sessioner och e-post

Sedan började vi prata om flera funktioner som ligger till grund för webbapplikationsutveckling:

  • Skapandet och hanteringen av användarkonton
  • sessioner för långvarig data
  • e-posttjänster

Vi täckte dessa saker i följd, inte bara för att de är kärnan i många moderna webbapplikationer, men för att de många gånger används tillsammans med varandra.

När en ny användare registrerar ett konto får han / hon ett e-postmeddelande om hur man aktiverar det eller hur man loggar in och sedan har användaren loggat in i systemet kommer de sannolikt att skapa en session så att data bärs med dem runt platsen tills deras session avslutas.

Anledningen till att detta tenderar att vara lite av ett problem för att bygga applikationer i WordPress, beror på att det inte finns något sessions-API. Istället måste vi falla tillbaka till de faciliteter som erbjuds av PHP. Det här är inte svårt, men om du aldrig har tagit dig tid att korrekt införa en inbyggd PHP-funktion i en befintlig applikation som inte redan innehåller det på något sätt, finns det flera punkter som bör förstås.

Och slutligen är e-post självklart viktigt för att kommunicera med användarna. Men många utvecklare som arbetar med WordPress (oavsett deras erfarenhet) är inte alltid medvetna om möjligheten att helt anpassa e-postmeddelanden som skickas inte bara under den vanliga händelsen utan även när vissa händelser inträffar som kan motivera en e-post i samband med din ansökan som inte är standard för WordPress.

6. Spara och hämta data

När användaren är inloggad i programmet kommer de sannolikt att spara och hämta data, men om de inte är det finns fortfarande en chans att vi kan spela in en del av deras information utan att veta hur de " återvända till webbplatsen, eller lämna information till dem.

Lyckligtvis har WordPress ett API som gör det här väldigt enkelt, men det kommer också på bekostnad av att behöva validera och sanera data både när du sparar och hämtar information.

Det här är nyckeln eftersom vi vill se till att skadlig information inte läggs in i databasen, och vi vill se till att vi hämtar information på ett säkert sätt så att det är läsligt och användarvänligt för användarna att se.

7. URL-omskrivning

När vi började sätta ihop serierna pratade vi lite om moderna URL-omskrivningsordningar och hur WordPress erbjuder en mängd olika sätt att göra detta ur lådan.

Men vi tog ett djupare utseende och jämförde vad många moderna ramar erbjuder för att anpassa vägar. Närmare bestämt tittade vi på hur RESTful-rutter kan implementeras i WordPress med hjälp av omskrivnings API för att ge ett renare webbadressschema, varför det här är fördelaktigt för användarna, och hur man hanterar det i WordPress.

Dessutom pratade vi om några av fallgroparna genom att göra detta och hur man undviker dem när de införlivar egna regler i vår ansökan.

8. Caching

Eftersom hastighet är en funktion fortsatte vi vidare med att prata lite om WordPress Transient API för att lära sig att cache information i vår ansökan.

Även om det finns många plugins och andra mjukvarupaket som kan introducera caching på våra webbplatser och applikationer, finns det ytterligare saker som vi kan göra som programmerare för att hjälpa till att dra nytta av de inbyggda funktionerna i WordPress och dess underliggande databas som kommer att spela bra med nämnda caching-applikationer.

Saken är, även om du inte kommer att förlita sig på program från tredje part för cachelagring, kan du fortfarande dra nytta av hur WordPress organiserar information i sin databas så att du fortfarande kan öka prestanda för ditt arbete genom att använda detta API.

9. Fråga databasen

Slutligen slutade vi vår undersökning och diskussion om funktionerna i att använda WordPress som en grund för applikationsutveckling genom att prata om de bästa sätten att fråga data.

Specifikt diskuterade vi:

  • WP_Query som används för att utföra mer avancerade frågor om posttyper, taxonomier, metadata och mer.
  • WP_User_Query som används för att skriva avancerade frågor mot användarens bord.
  • $ wpdb för att skriva egna databasfrågor.

Vi tittade sedan på användarfall för alla tillgängliga API, hur man hävdar dem i vårt projekt och under vilka förutsättningar man ska använda.

Eftersom WordPress är en databasdriven applikation, så kommer de applikationer som vi bygger ovanpå det också att vara viktigt att veta exakt hur vi ska interagera med de tillgängliga API: erna så att vi inte bara hämtar korrekt information utan gör det på en prestanda , lättläst, underhållbart och skalbart sätt.

Var går vi härifrån?

Det slutgiltiga målet med denna serie artiklar var att ge så omfattande titt på vad WordPress erbjuder i vägen för webbapplikationsutveckling.

Naturligtvis, som utvecklare, måste vi komma ihåg att det inte finns någon silverkula när det gäller att tillhandahålla lösningar för oss själva, våra kunder och våra kunder - det handlar om att hitta rätt verktyg för jobbet. I vissa fall kommer det att bli WordPress, i andra fall kommer det inte. Allt som sägs, bara för att WordPress kan används inte betyder att den ska användas, och vi borde inte arbeta för att tvinga vårt problem i WordPress när det inte är rätt.

Det sagt, när WordPress gör erbjuda rätt funktionalitet, API och struktur för att lösa det givna problemet och behåll sedan denna serie artiklar lättillgängliga för referens eftersom den syftar till att ge dig exakt det du behöver bygga fasta webbapplikationer utöver det befintliga WordPress-fundamentet.