How to become a MediaWiki hacker/da


 * ''For andre måder at blive inddraget i MediaWiki-verdenen, se Hvordan kan jeg bidrage?.

Denne artikel er skrevet for at hjælpe nybegyndere at lære de nødvendige færdigheder til at bidrage til MediaWikis udvikling.

Hvis du er en erfaren udvikler, se istedet developer hub/da.

Overblik
MediaWiki er den software, der driver Wikipedia, dens søsterprojekter og tusindvis af wikier over hele verden. Det kører på de fleste operativsystemer, er skrevet i PHP, bruger primært MySQL-database-server og bruger jQuery som klient Javascript biblioteket. Udvikling af MediaWiki støttes primært af Wikimedia-stiftelsen, men frivillige udviklere deltager også i stor stil.

Denne side skal hjælpe dig på vej til at blive en god bidragyder til MediaWiki. Det er ikke en håndbog, men den henviser dig til forskellige steder, hvor du kan gå lære det der er nødvendigt.

PHP
MediaWiki er skrevet i PHP, så du bliver nød til at blive fortrolig med PHP for at komme ind til MediaWiki's kerne.


 * Lær PHP
 * [//php.net/manual/en/tutorial.php PHP tutorial] - tilgængelig på mange forskellige sprog. Hvis du ikke har kendskab til PHP, men ved, hvordan man programmerer i andre objektorienterede programmeringssprog, vil PHP være nemt for dig at lære.
 * PHP Programmering på Wikibooks.


 * PHP kilder:
 * [//php.net/manual/en/ The PHP manual] - tilgængelig på mange forskellige sprog.
 * PHP kode-konventioner indenfor MediaWiki-verdenen.


 * Værd at vide:
 * Scriptet maintenance/eval.php i MediaWiki giver en grundlæggende PHP fortolker med MediaWiki objekter og indlæste klasser.

Database
Mange funktioner kræver en vis mængde database-manipulation, så du bliver ofte nød til at være fortrolig med MySQL.


 * Lær MySQL
 * [//dev.mysql.com/doc/refman/5.0/en/tutorial.html MySQL håndbog] - fra MySQL 5.0 reference manualen.
 * MySQL på Wikibooks.


 * MySQL kilder
 * [//dev.mysql.com/doc/ MySQL reference manualer] - tilgængelig på mange forskellige sprog.
 * Database kode konventioner indenfor MediaWiki-verdenen.


 * Værd at vide:
 * Test din kode med MySQL.
 * MediaWiki bruger MySQL som den primære database rygrad. Den understøtter også andre DBMS'er, såsom PostgreSQL og SQLite. Men næsten alle udviklere bruger MySQL og tester ikke andre databaser, som derfor regelmæssigt bryder sammen. Du anbefales derfor at bruge MySQL ved test-kørsler, medmindre du specifikt prøver at forbedre understøttelse til en anden DB. I sidstnævnte tilfælde, så sørg for at du er omhyggelig med ikke at ødelægge MySQL (eller skrive forespørgsler, der er forfærdeligt ineffektive i det sprog), da det er hvad alle andre bruger.

JavaScript og CSS
JavaScript og CSS er blevet allestedsnærværende i moderne kode. Du behøver ikke være fortrolig med JavaScript, jQuery og CSS for at arbejde med MediaWiki, det afhænger af hvad du vælger at arbejde med.


 * Lær JavaScript og CSS
 * JavaScript og CSS på Wikibooks.
 * [//docs.jquery.com/Tutorials:Getting_Started_with_jQuery Kom igang med jQuery] - jQuery håndbog.


 * JavaScript og CSS kilder
 * JavaScript kode konventioner/da indenfor MediaWiki-verdenen.
 * CSS kode konventioner/da indenfor MediaWiki-verdenen.

MediaWiki
MediaWiki kodebasen er stor og grim, du skal ikke blive overvældet af den. Når du først starter ud, så tag sigte på at skrive funktioner eller rette fejl, begrænset til et lille område af koden.


 * Primær og tvungen MediaWiki læsning:
 * [//aosabook.org/en/mediawiki.html MediaWiki arkitektur] - højniveau overblik over de vigtigste komponenter i MediaWiki og hvordan de arbejder med hinanden.
 * Security for developers/da - oversigt over, hvorfor og hvordan man skriver sikker kode.


 * MediaWiki kilder:
 * Manual:Code/da - liste over vigtige filer og links til mere detaljerede oplysninger.
 * Coding conventions/da - oversigt over generelle kodekonventioner inden for MediaWiki-verdenen.
 * Intro til MediaWiki workshop pensum/da - måder at hacke MediaWiki, fra brugernes præferencer til udvidelser og kernen.
 * [//svn.wikimedia.org/doc/ Fuldstændig dokumentation] (advarsel: siden er stor) - automatisk genereret dokumentation fra koden og kode-kommentarer.
 * How to debug/da - guide til fejlfinding i MediaWiki.
 * eval.php/da - værktøj til at interagere med MediaWiki objekter live.

Opsætning af dit miljø

 * Installation requirements/da - tjek hardwarekrav, og installer en LAMP, MAMP eller WAMP server (Linux, Mac eller Windows, plus Apache, MySQL og PHP).
 * Download from Git/da - download den nyeste kildekode fra Git.
 * Installation guide/da - forsæt installationen og startkonfiguration
 * Opsætning af de forskellige debug modes i dit miljø for at vise advarsler og fejl tidligt.

Det er ikke nødvendigt at hente Wikipedia databasedumps for at udvikle MediaWiki funktioner. I virkeligheden er det i mange tilfælde nemmere at bruge en næsten tom database med et par særligt udformede testsider. Men hvis du af en eller anden grund ønsker at have en kopi af Wikipedia, kan du få et dump.

Kom igang
De to vigtigste veje at komme i gang med MediaWiki udvikling er at ordne en irriterende lille fejl/da i den eksisterende kode, eller at tilføje en ny funktion, som regel gennem en MediaWiki udvidelse.


 * Grundlæggende MediaWiki udvidelser:
 * Developing extensions/da - hvordan man skriver en udvidelse til MediaWiki
 * Writing an extension for deployment/da - hvis du ønsker at få din udvidelse indsat på Wikimedia's websteder (herunder eventuelt Wikipedia), er yderligere kontrol nødvendig med hensyn til ydeevne og sikkerhed.
 * Håndbog for skrivning af udvidelser/da


 * MediaWiki udvidelsers kilder:
 * List of simple extensions/da - simpel måde at blive mere fortrolig med, hvordan udvidelser virker.
 * En kort introduktion til udvikling af MediaWiki udvidelser - video-præsentation om, hvordan en MediaWiki udvidelse oprettes (lysbilleder).
 * Konstruktion af en MediaWiki udvidelse - hvordan man kan udvikle en udvidelse til MediaWiki, bedste øvelser, og hvordan Mediawiki-verdenen engageres. Fra februar 2011.
 * Specialside skabelon - tilføj en specialside til at vise nogle praktiske oplysninger.
 * Extending wiki markup/da - tilføj en parser krog til at ændre indholdet af wikitext.

Gem dine ændringer
Der er to primære muligheder for at sende ændringer til MediaWiki. Du kan enten indsende patches gennem vores fejlsøgnings-system, eller du kan få Developer access/da, så du kan indsende ændringer til Gerrit, vores kodegennemgangs-værktøj. Det er let at får udvikler-adgang.

Fremskyndelse af gennemsyn gennem Gerrit

 * Få developer access/da, hvis du ikke allerede har det.
 * Foretag dine ændringer i en gren i Git/da (se Git/Workflow/da).
 * Tjek din kode op imod før-afsendelse checklisten/da. Spring ikke over dette skridt, det vil du ikke fortryde.
 * Indsend din ændring til Gerrit (se Git/Workflow/da).
 * Send et link til din Gerrit ændringssæt i den relevante fejlrapport i Bugzilla/da med, og marker det med   og   nøgleord.
 * Du er velkommen til at pinge Bug management/da hvis du ser din patch ikke er blevet sendt til gennemsyn. Dette kan være en langsommere proces end bare at skubbe det selv, men ved at gøre det en gang eller to viser du din gode hensigt, og din evne til at skrive rimelig stabil kode.
 * Spørg efter revidering af din kode/da, se e-mail opdateringer og foretag de ønskede ændringer.

Indsend en patch til bugzilla

 * Tjek dine kodeændringer op imod før-indsendelse checklisten/da. Spring ikke over dette skridt, det vil du ikke fortryde.
 * Opret en patch af dine ændringer (du kan bruge 'git diff' eller 'svn diff' hvis du foretager ændringer i forhold til kodedepotet. For at få hjælp, tag et kig på OpenHatch's [//openhatch.org/missions/diffpatch diff og patch] træningsmission)
 * Vedhæft din patch til en tilsvarende fejl i Bugzilla/da - hvis et sådant ikke findes, gå videre og opret det
 * Tilføj  og   nøgleord til fejlen

Diskutér og få hjælp
MediaWiki har en meget venlig, stort og forskelligartet fællesskab. Der er flere steder at få hjælp. Hvis du allerede har en idé til en funktion, du ønsker at indføre, er det også en god idé at tale med en senior udvikler, før du begynder, især hvis du ikke er sikker på, hvordan din funktion vil påvirke andre dele af koden.
 * IRC/da - specifikt kanalen. MediaWiki udvikler-fællesskabet er fordelt rundt om i verden, og der er sandsynligvis nogen vågen, uanset hvad din tidszone er. Hop ind og begynde at tale.
 * Mailing Lists/da - Eftersom du gerne vil være udvikler, er wikitech-l hvor du bør være. Du kan også gennemse arkiverne for at få en fornemmelse af, hvordan fællesskabet fungerer.

Se også

 * How to become a MediaWiki hacker/Workshop/da
 * Udvikler-forum - når du har grundigt læst informationen i denne artikel, er det tid til at gå videre til informationen i udvikler-forum.
 * Andre Wikimedia tekniske projekter du kan hjælpe med
 * MediaWiki Virtual Library (MVL) - siden er også en del af MediaWiki Developers Guide.