{"id":230954,"date":"2022-12-23T12:34:00","date_gmt":"2022-12-23T09:34:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230954"},"modified":"2022-12-07T10:53:40","modified_gmt":"2022-12-07T07:53:40","slug":"skriva-baettre-wordpress-kod-introduktion","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/skriva-baettre-wordpress-kod-introduktion\/","title":{"rendered":"Skriva b\u00e4ttre WordPress-kod: Introduktion"},"content":{"rendered":"\n<p>Under de senaste \u00e5ren har jag pratat mycket om kodkvalitetens natur och olika verktyg, processer och bibliotek som jag rekommenderar att anv\u00e4nda n\u00e4r det kommer till att skriva kod f\u00f6r WordPress.<\/p>\n<p>Jag \u00e4r ocks\u00e5 \u00f6ppen f\u00f6r att majoriteten av det arbete jag g\u00f6r \u00e4r i backend-utveckling. Det betyder att jag \u00f6verv\u00e4gande arbetar med WordPress-plugins med hj\u00e4lp av objektorienterad programmering och arbetar inte s\u00e5 mycket med mallar och inte heller lika mycket med front-end-teknologier.<\/p>\n<p>Det \u00e4r ett val, och jag \u00e4r verkligen n\u00f6jd med var jag \u00e4r. Men jag avviker.<\/p>\n<p>Om du sysslar med att g\u00f6ra samma sak (eller g\u00f6r det som en hobby) handlar det inte bara om att skriva koden. Det handlar om att ha r\u00e4tt verktyg p\u00e5 plats.<\/p>\n<p>Jag har h\u00e4nvisat till n\u00e5gra i dessa i tidigare inl\u00e4gg, men jag har inte g\u00e5tt igenom de verktyg jag anv\u00e4nder och inst\u00e4llningarna jag anv\u00e4nder n\u00e4r jag bygger en l\u00f6sning f\u00f6r mig sj\u00e4lv eller n\u00e5gon annan.<\/p>\n<p>\u00c5tminstone inte p\u00e5 ett organiserat s\u00e4tt.<\/p>\n<p>I den h\u00e4r serien kommer jag att g\u00f6ra exakt det:<\/p>\n<p>Jag kommer att ta upp verktygen jag anv\u00e4nder, biblioteken jag anv\u00e4nder och hur jag anv\u00e4nder dem.<\/p>\n<p>I slut\u00e4ndan \u00e4r m\u00e5let att ni som l\u00e4ser detta kan inf\u00f6rliva dem i ert dagliga arbete f\u00f6r att skriva b\u00e4ttre kod.<\/p>\n<h2>B\u00e4ttre WordPress-kod<\/h2>\n<p>Innan vi g\u00e5r vidare ska jag f\u00f6rst ge en ansvarsfriskrivning:<\/p>\n<p>Den tidigare serien som jag har gjort hittills har varit l\u00e5ng. Den h\u00e4r serien kommer inte. Jag ska fokusera p\u00e5 kortare mer fokuserade serier och inl\u00e4gg ett tag.<\/p>\n<p>Med det sagt, den h\u00e4r serien f\u00f6ruts\u00e4tter att du \u00e4r bekant med din IDE och har en \u00f6versiktlig kunskap om <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. F\u00f6r mig anv\u00e4nder jag Visual Studio Code (och jag har t\u00e4ckt det <a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">en hel del<\/a> ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6475f0f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6475f0f.png\" alt=\"Skriva b\u00e4ttre WordPress-kod: Introduktion\" ><\/a><\/p>\n<p>Jag kommer att g\u00e5 igenom processen fr\u00e5n allra f\u00f6rsta b\u00f6rjan tills jag har ett plugin redo att rulla. Nej, det betyder inte att vi skriver ett plugin. Men vi ska g\u00e5 \u00e4nda upp till kanten.<\/p>\n<p>S\u00e5 med det sagt, l\u00e5t oss b\u00f6rja.<\/p>\n<h3>Installerar Composer<\/h3>\n<p>F\u00f6r er som har l\u00e4st den h\u00e4r bloggen l\u00e4nge, d\u00e5 vet ni att jag har tagit upp detta tidigare; dock vill jag aldrig anta n\u00e5got liknande n\u00e4r det kommer till de som nyligen har g\u00e5tt med eller kanske l\u00e4ser om detta f\u00f6rsta g\u00e5ngen.<\/p>\n<p>Om du redan \u00e4r inst\u00e4lld kan du hoppa \u00f6ver det; annars, l\u00e5t oss forts\u00e4tta.<\/p>\n<h4>Vad betyder global installation?<\/h4>\n<p>Att installera en applikation globalt inneb\u00e4r att den \u00e4r tillg\u00e4nglig \u00f6verallt p\u00e5 ditt system. Det vill s\u00e4ga, det spelar ingen roll om du \u00e4r i din dokumentkatalog eller i en projektkatalog, du kan komma \u00e5t verktyget via kommandoraden.<\/p>\n<p>Och visst kan vi anv\u00e4nda Composer p\u00e5 projektbasis (och jag f\u00f6respr\u00e5kar det), men det finns tillf\u00e4llen d\u00e5 det \u00e4r viktigt att installera Composer i en global milj\u00f6 ocks\u00e5.<\/p>\n<p>Och det \u00e4r vad vi ska g\u00f6ra h\u00e4r.<\/p>\n<h3>Tv\u00e5 s\u00e4tt att installera Composer<\/h3>\n<h4>Anv\u00e4nder Homebrew<\/h4>\n<p>Om du anv\u00e4nder <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew<\/a> \u00e4r det m\u00f6jligt att installera Composer med Homebrew. Det \u00e4r utan tvekan l\u00e4ttare att installera och uppgradera.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a682be91.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a682be91.png\" alt=\"Skriva b\u00e4ttre WordPress-kod: Introduktion\" ><\/a><\/p>\n<p>Naturligtvis f\u00f6ruts\u00e4tter detta att du har Homebrew installerat. Om du inte g\u00f6r det och \u00e4r intresserad anger du <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-00-install-homebrew-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">det h\u00e4r kommandot<\/a> :<\/p>\n<pre><code>$ \/usr\/bin\/ruby -e \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\"<\/code><\/pre>\n<p>Observera dock att om du v\u00e4ljer att g\u00e5 den h\u00e4r v\u00e4gen kommer det att finnas n\u00e5gra saker du beh\u00f6ver vara bekant med runt Homebrew. Och \u00e4ven om jag \u00e4r ett fan, \u00e4r det inte riktigt en del av det h\u00e4r inl\u00e4gget. Jag har behandlat det p\u00e5 djupet <a href=\"https:\/\/tommcfarlin.com\/?s=homebrew\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i andra inl\u00e4gg<\/a> (och du kan alltid l\u00e4sa <a href=\"https:\/\/docs.brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentationen<\/a> ).<\/p>\n<p>Sedan kan du installera Composer, med Homebrew, genom att ange <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-01-brew-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6ljande kommando<\/a> :<\/p>\n<p>Verkligen inte, eller hur?<\/p>\n<h4>Installera Composer manuellt<\/h4>\n<p>Det andra s\u00e4ttet att installera Composer \u00e4r genom att ladda ner den h\u00e4r filen och sedan placera den i din globala s\u00f6kv\u00e4g.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6bcc142.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6bcc142.png\" alt=\"Skriva b\u00e4ttre WordPress-kod: Introduktion\" ><\/a><\/p>\n<p>Det vill s\u00e4ga, n\u00e4r du har laddat ner <a href=\"https:\/\/getcomposer.org\/composer.phar\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">den h\u00e4r filen<\/a> (observera att l\u00e4nken \u00e4r en faktisk nedladdning s\u00e5 var uppm\u00e4rksam p\u00e5 var du placerar den!), kan du sedan k\u00f6ra <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-02-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">det h\u00e4r kommandot<\/a> fr\u00e5n terminalen:<\/p>\n<pre><code>$ mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>Och detta kommer att flytta Composer till din globala v\u00e4g.<\/p>\n<h2>Verifiera komposit\u00f6rens installation<\/h2>\n<p>N\u00e4r du har f\u00f6ljt ett av stegen ovan b\u00f6r du kunna testa versionen av Composer genom att k\u00f6ra <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-03-composer-v-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6ljande<\/a> i din terminal:<\/p>\n<p>Och du borde se n\u00e5got s\u00e5nt h\u00e4r:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6e69b61.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6e69b61.png\" alt=\"Skriva b\u00e4ttre WordPress-kod: Introduktion\" ><\/a><\/p>\n<p>Om du inte g\u00f6r det dubbelkolla sedan stegen ovan.<\/p>\n<h2>Till Verktygen<\/h2>\n<p>En av fr\u00e5gorna som dyker upp d\u00e5 och d\u00e5, ang\u00e5ende komposit\u00f6r, \u00e4r varf\u00f6r? Och \u00e4ven om jag skulle kunna svara p\u00e5 det i det h\u00e4r inl\u00e4gget, kom ih\u00e5g att jag jobbar p\u00e5 att h\u00e5lla de h\u00e4r och den h\u00e4r serien lite mer kortfattad \u00e4n de tidigare serierna.<\/p>\n<p>S\u00e5 jag ska f\u00f6rs\u00f6ka svara p\u00e5 det, i korthet, i n\u00e4sta inl\u00e4gg, samt t\u00e4cka hur man kommer ig\u00e5ng med n\u00e5gra verktyg, varefter vi b\u00f6rjar se hur det kan spela en st\u00f6rre roll i utvecklingen av WordPress-plugins.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Den h\u00e4r serien kommer att t\u00e4cka de verktyg och bibliotek jag anv\u00e4nder f\u00f6r att skriva en b\u00e4ttre WordPress-kod.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,807,724,868],"tags":[1173],"class_list":["post-230954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-php-9","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=230954"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}