Fremragende praktisk guide til pluginudvikling

af Georg S. Adamsen den 23. juli 2009

i Anmeldelser

Vladimir Prelovac vil være kendt for en del – også danske – WordPress-brugere, eftersom han dels har skrevet flere populære plugins, dels har lavet to flotte temaer (WordPress-designs), sådan som man også kan se det på WordPress.Blogos.dk. Prelovac har så også skrevet en bog om udvikling af plugins: WordPress Plugin Development Beginner’s Guide. Den anbefaler jeg på det varmeste. Jeg har lært en masse af den!

Prelovacs WP Plugin Development

Prelovacs WP Plugin Development

Målgruppen er PHP-udviklere (bagsiden), programmører, som arbejder med WordPress, og som ønsker at udvikle plugins og “hacke” kodebasen. Man skal være fortrolig med de grundlæggende sider af WordPress og PHP og tro, at “code is poetry” (s. 2).

Mine forudsætninger for at anmelde Prelovacs bog er ikke, at jeg er programmør eller lignende. Men jeg havde lyst til at sætte mig ind i, hvordan man kan skrive plugins. Udbyttet har været langt større end forventet. Jeg håbede, jeg kunne lære at forstå det grundlæggende, så jeg måske kunne hjælpe med at finde bugs osv. Det mener jeg, er lykkedes. Men jeg er også selv kommet i gang. Foreløbig har jeg inspireret af Prelovac skrevet pluginnet WP Theme Showcase ext and i18n, hvor jeg har brugt en lang række teknikker, som jeg især har lært af Prelovac. Jeg har også skrevet et par andre (endnu) ikke offentliggjorte plugins med funktioner, jeg selv har haft brug for på mine blogs. Et af dem er en widget, der viser simple statistiske oplysninger for WordPress Download Monitor. En anden viser en tekst stavet baglæns, hvis den omgives af de rigtige kortkoder. Selv om jeg næppe hører til den primære målgruppe, har jeg altså fået rigtig meget ud af bogen. Med en indsats kan altså selv amatører lære meget af Prelovac. WordPress-udviklere med større kendskab til Ajax og JavaScript vil uden tvivl få endnu større glæde af den (men måske have mindre brug for den?).

Eftersom jeg ikke selv er PHP-udvikler, tager jeg måske fejl. Men jeg havde flere gange en fornemmelse af, at målgruppen nok er klart formuleret, men at det måske ikke altid har stået Prelovac helt klart fra begyndelsen. Nogle gange får man helt elementære oplysninger, andre gange er der spørgsmål, der ikke behandles eller ikke behandles særligt udførligt. Prelovacs gennemgang af sine eksempler har af og til karakter af blot at være omskrivninger. Et par ord, f.eks. om den allestedsnærværende brug af $-tegnet i JavaScript-eksemplerne er sikkert barnemad, men ville ikke være mindre relevant end så mange andre introducerende bemærkninger, når man tager den omfattende brug i betragtning.

Man kan imidlertid ofte komme med sådanne betragtninger om at ramme målgruppen. Min tilgang har været subjektiv. Kunne Prelovac hjælpe mig i gang? Og svaret er ja, så derfor anbefaler jeg bogen på det varmeste. Det har at gøre med dens tilgang.

Prelovacs tilgang

Prelovacs tilgang

Det særlige ved Prelovacs bog er, at den ikke tager udgangspunkt i teorien, men derimod i en række praktiske eksempler. Prelovac viser, hvordan man skriver plugins i praksis. Han begynder med ganske simple eksempler og ender med to, der er noget mere komplicerede. Det ene plugin viser gamle blogindlæg med en interaktiv brugerflade med billeder fra indlæggene. Det andet tilføjer et brugerpanel til kontrolpanelet. Prelovac drøfter også brug af API’er samt viser princippet i, hvordan man gør det muligt for brugerne at lave oversættelser til de plugins, man skriver. Det er overkommeligt at følge med i eksemplerne (mens det naturligvis kræver en del viden at kunne skrive dem i første omgang). Man kan i øvrigt downloade eksemplerne til bogen fra nettet.

I det store og hele lykkes strategien. Er man PHP-udvikler (og fortrolig med HTML, CSS og JavaScript – og til dels SQL, f.eks. MySQL), vil bogen være let læst og, tror jeg, nærmest kunne fungere som en oversigt. Hvilket netop er hensigten. Men har man kun – som jeg havde – en vis forhåndsviden, kan man alligevel arbejde sig rundt om metoderne og teknikkerne i udvikling af WordPress-plugins. Så må man bruge lidt ekstra tid på at læse op på det, man ikke ved. Men det kan altså lade sig gøre!

Et par ord om emner, Prelovac kommer ind på: WordPress-platformen, skriver Prelovac, er en god platform at arbejde på/med. Det er jeg enig i!

Markedsføring er alfa og omega. Det skriver Prelovac også om. Det gør vel faktisk bogen ekstra interessant, at Prelovac selv har gjort, som han skriver. Eller rettere: Han skriver, som han (næsten) har gjort! Faktisk er der mindst et af hans plugins, som ikke er forberedt for oversættelse. Men der er mange nyttige tips!

I praksis kræver udvikling af WordPress-plugins som antydet kendskab til tre-fire-fem store emner: HTML og CSS, fordi brugerne jo skal se noget i deres browser. PHP og JavaScript som programmeringssprog for henholdsvis serveren og brugerens browser. Og selvfølgelig WordPress. Man må selvfølgelig kende WordPress’ opbygning med datastruktur, kernen, designet og så især API’en, dvs. hvordan man får sit plugin til at køre på og så at sige bruge WordPress. WordPress leveres med to JavaScript-biblioteker. Prelovac viser, hvordan man bruger en af dem, jQuery, og henviser til Learning jQuery, hvor man kan lære (mere) om det. Alt i alt synes jeg egentlig, man får en god introduktion til denne store buket.

Værktøj er alfa og omega, næsten uanset hvad man laver. Prelovac nævner en lang række. Firebug er en af de vigtigste, når det gælder at teste, især hvis man installerer diverse udvidelse til Firebug. Ubiquity kunne jeg ikke umiddelbart få til at fungere, fordi jeg besøgte stederne med Ubiquity-udvidelser, inden jeg installerede Ubiquity. Jeg kunne i første omgang ikke installere de to scripts til Ubiquity, som Prelovac nævner. Men det lykkedes til sidst, og det er jeg glad for. Ubiquity er en udvidelse til Firefox, som kan en masse. Med PHP Search af Pattison og WP Codex Search af Prelovac selv kan man trykke Ctrl-Mellemrum og så f.eks. skrive “wp widgets api”. Så får man den side vist. Fremragende. Og løsningen på installationsproblemerne? Installér Ubiquity først og besøg så de to URL’er, Prelovac angiver. Så bliver du spurgt, om du vil installere. Hvis Ubiquity ikke er installeret, ser det ud, som om der intet er at hente.

Kapitel om Social Bookmarking fra Vladimir Prelovacs WordPress Plugin Development

Kapitel om Social Bookmarking fra Vladimir Prelovacs WordPress Plugin Development

Skærmbilleder og kodeeksempler er en god idé. Prelovacs eksempler gengives først med relativt få kommentarer, men derefter spørger han, hvad der egentlig skete. Det kan virke som unødige gentagelser, men jeg vurderer faktisk, at det er en god pædagogik. Hvert afsnit eller kapitel afsluttes med resumeer og henvisning til flere ressourcer. Det er meget fint og brugervenligt.

Små skønhedspletter er der her og der, men det spiller ingen rolle, heller ikke, at de er fra ældre versioner af WordPress. Man kan jo naturligvis ikke klandre en bog for ikke at forholde sig til ændringer, der er kommet efter udarbejdelse af bogen. En note om, hvornår manuskriptet var afsluttet, kunne måske have været nyttig. Jeg kunne dog godt have tænkt mig, at Prelovac gik ind på de kommende krav til opdatering af indstillinger. Han nævner kun nonce-teknikken, men altså ikke hvidlistning af indstillinger.

Introduktionen til Ajax (s. 73) er for kortfattet, synes jeg. Men man kan jo bare slå op på Wikipedia eller andre steder, så det er ikke noget større problem.

Hvad oversættelse angår, omtaler Prelovac kun internationalisering af PHP, men det er faktisk også vigtigt at vide, hvordan man internationaliserer JavaScript-kode. Det nævner Prelovac intet om. Det er en af de ting, jeg gerne ville have haft en henvisning til yderligere oplysninger om.

Her og der mangler der en sidste redaktion. Jeg tror f.eks. ikke, at beskrivelsen af accepted_args s. 43 er helt korrekt. “The default value is 1 and is used …” burde være “The default value is 1. This parameter is used …”. Jeg undrede mig også over, at Prelovac kan sige, at “The main difference between JavaScript and PHP is that JavaScript is client based (it executes in the user’s browser) whereas PHP is server based (it executes on the remote server).” Det er en vigtig forskel, men “the main difference”?

Korrekturlæsning af en teknisk bog er altid en stor udfordring. I det store og hele er der få fejl. Til gengæld er det forvirrende for en begynder, når der er fejl i variabler og funktionsnavne (f.eks. nederst s. 73, tror jeg), eller når der mangler anførselstegn (f.eks. i slutningen af pkt. 6 side 76). Følger man syntaksen i disse fejlagtige eksempler, får man jo PHP-fejl.

Stikordsregisteret er vigtig i en bog af denne type. Her er der visse mangler. Jeg synes f.eks., det ville have været naturligt at have jQuery’s $ med under “Symbols” (s. 273). “JSON” og “Security” findes ikke som (selvstændige) opslag. Under “nonce” kunne der have været henvisning til s. 123.

Alt i alt er det en rigtig god og nyttig bog med en fin og logisk fremdrift. Den er hermed anbefalet på det varmeste.

Vladimir Prelovac: WordPress Plugin Development Beginner’s Guide. Packt Publishing. Birmingham/Mumbai, 2009. £24.99. 278 s.

Udskriv dette indlæg Udskriv dette indlæg Email dette indlæg Email dette indlæg

Skriv en kommentar

Anti-Spam Protection by WP-SpamFree

Forrige indlæg:

Næste indlæg: