{"id":230609,"date":"2022-12-15T14:51:00","date_gmt":"2022-12-15T11:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230609"},"modified":"2022-12-15T14:51:09","modified_gmt":"2022-12-15T11:51:09","slug":"wordpress-widgets-refactoring-del-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-widgets-refactoring-del-1\/","title":{"rendered":"WordPress-widgets: Refactoring, del 1"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-widgets-boerjar-med-standarder\/\" title=\"Det f\u00f6rra inl\u00e4gget\">Det f\u00f6rra inl\u00e4gget<\/a><\/strong> inneh\u00f6ll mycket information om hur du st\u00e4ller in kodkvalitetsverktyg i din <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/wordpress-development-environment\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress-utvecklingsmilj\u00f6<\/a><\/strong>, men de \u00e4r n\u00f6dv\u00e4ndiga om vi ska g\u00f6ra mycket omfaktorer.<\/p>\n<blockquote>\n<p>Men som jag n\u00e4mnde i b\u00f6rjan av det h\u00e4r inl\u00e4gget, ger l\u00e4ggande av kodkvalitetsverktyg oss f\u00f6rst en grund som vi kan anv\u00e4nda n\u00e4r vi refaktorerar boilerplate (vilket vi helt klart m\u00e5ste g\u00f6ra med tanke p\u00e5 m\u00e4ngden r\u00f6tt som visas av GrumPHP).<\/p>\n<\/blockquote>\n<p>\u00c4rligt talat ser jag dessa som n\u00f6dv\u00e4ndiga om du ska g\u00f6ra n\u00e5gon typ av utveckling och d\u00e4rf\u00f6r m\u00e5ste du visa hur man st\u00e4ller in dem.<\/p>\n<p>Oavsett vilket visar det tidigare inl\u00e4gget hur mycket arbete vi har lagt ner f\u00f6r oss, eller hur?<\/p>\n<p>Nu ska vi b\u00f6rja med att omstrukturera <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Widget Boilerplate<\/a><\/strong>.<\/p>\n<p>Detta kommer inte bara att f\u00f6rb\u00e4ttra kodkvaliteten utan ocks\u00e5 leda oss igenom n\u00e5gra objektorienterade principer som vi kan till\u00e4mpa n\u00e4r vi bygger v\u00e5ra widgets och vi kan till\u00e4mpa i framtida WordPress-utvecklingsinsatser.<\/p>\n<h2>WordPress Widget Boilerplate: Refactoring, del 1<\/h2>\n<p>Det kanske mest sp\u00e4nnande f\u00f6r mig \u00e4r att f\u00e5 det h\u00e4r f\u00f6rr\u00e5det upp till modern standard. Om du tittar p\u00e5 <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mastergrenen i GitHub<\/a><\/strong> vid tidpunkten f\u00f6r detta inl\u00e4gg (eller historien om f\u00f6rvaret senare), kommer du att se att den \u00e4r sex \u00e5r gammal.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d06f9bc.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-161542-61e724d06f9bc.png\" alt=\"WordPress-widgets: Refactoring, del 1\"><\/a><\/p>\n<p>Den h\u00e4r saken \u00e4r sex \u00e5r gammal (vid tidpunkten f\u00f6r detta inl\u00e4gg).<\/p>\n<p>Det \u00e4r en l\u00e5ng tid i internet\u00e5r, eller hur?<\/p>\n<p>Hur som helst, i v\u00e5ra omstruktureringsanstr\u00e4ngningar kommer vi att g\u00f6ra n\u00e5gra saker:<\/p>\n<ul>\n<li>skapa en gren som du kan arbeta av innan den sl\u00e5s ihop igen i huvudgrenen,<\/li>\n<li>implementera ett mer sammanh\u00e5llet s\u00e4tt att organisera filer,<\/li>\n<li>uppdatera kodningsstandarderna f\u00f6r att f\u00f6lja det som \u00e4r mer i linje med PSR,<\/li>\n<li>och mer.<\/li>\n<\/ul>\n<p>Jag l\u00e4gger ut det h\u00e4r nu eftersom vi troligen inte kommer att komma till allt i det h\u00e4r inl\u00e4gget, men vi kommer att t\u00e4cka mycket mark. S\u00e5 med det sagt, l\u00e5t oss b\u00f6rja.<\/p>\n<h3>1 Skapa en utvecklingsgren<\/h3>\n<p>Om du antar att du har en kopia av arkivet p\u00e5 din lokala dator, som du b\u00f6r ha efter det sista inl\u00e4gget, \u00e4r det f\u00f6rsta vi beh\u00f6ver g\u00f6ra att skapa en gren som vi kan g\u00f6ra v\u00e5rt arbete fr\u00e5n.<\/p>\n<p>Det \u00e4r en b\u00e4sta praxis att inte arbeta p\u00e5 mastergrenen. Ist\u00e4llet b\u00f6r mastern alltid anv\u00e4ndas f\u00f6r att distribuera den senaste stabila versionen av koden.<\/p>\n<p>F\u00f6r detta \u00e4ndam\u00e5l anger du f\u00f6ljande kommando i din terminal:<\/p>\n<pre><code>$ git checkout -b develop<\/code><\/pre>\n<p>Detta kommer att skapa en ny lokalavdelning. Det har \u00e4nnu inte skjutits upp till GitHub eller ditt fj\u00e4rrlager \u00e4nnu (var du \u00e4n f\u00f6rvarar det).<\/p>\n<p>Skriv sedan in f\u00f6ljande kommando:<\/p>\n<pre><code>$ git push --set-upstream origin develop<\/code><\/pre>\n<p>Detta kommer att driva utvecklingsgrenen upp till fj\u00e4rrf\u00f6rvaret. N\u00e4r det \u00e4r klart b\u00f6r du kunna se alla \u00e4ndringar som vi implementerade i det senaste inl\u00e4gget i ditt fj\u00e4rrlager.<\/p>\n<p>Om du anv\u00e4nder GitHub b\u00f6r det se ut ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d38c4f4.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-161542-61e724d38c4f4.png\" alt=\"WordPress-widgets: Refactoring, del 1\"><\/a><\/p>\n<p>Om du anv\u00e4nder en annan tj\u00e4nst b\u00f6r den fortfarande se likadan ut. Det vill s\u00e4ga att katalogstrukturen ska vara densamma, men hur den ser ut i webbl\u00e4saren kommer att variera.<\/p>\n<h4>En anteckning om filialen<\/h4>\n<p>Kom ih\u00e5g att syftet med denna gren \u00e4r att vi ska g\u00f6ra allt v\u00e5rt arbete. P\u00e5 s\u00e5 s\u00e4tt st\u00f6r vi inte mastergrenen fr\u00e5n vilken m\u00e5nga m\u00e4nniskor kommer att dra.<\/p>\n<p>F\u00f6r att vara tydlig, kanske ingen kommer att dra sig ur detta. Kanske g\u00f6r de det. Oavsett vilket \u00e4r denna praxis som introduceras h\u00e4r menad att visa hur man k\u00f6r ett projekt med hj\u00e4lp av k\u00e4llkontroll och kodkvalitetsverktyg s\u00e5 att du kan bygga b\u00e4ttre projekt f\u00f6r dig sj\u00e4lv, ditt f\u00f6retag och mer.<\/p>\n<h3>2 Omorganisera filer<\/h3>\n<p>Det f\u00f6rsta vi b\u00f6r g\u00f6ra \u00e4r att organisera om filerna s\u00e5 att de efterliknar en mer modern struktur. Jag ska g\u00f6ra mitt b\u00e4sta f\u00f6r att motivera de beslut jag fattar f\u00f6r projektet n\u00e4r vi g\u00f6r detta; ta dig dock friheter med hur du vill g\u00f6ra.<\/p>\n<p>De beslut jag tar kommer i slut\u00e4ndan att p\u00e5verka den prim\u00e4ra Boilerplate. Vad du v\u00e4ljer att g\u00f6ra kommer att p\u00e5verka hur du kan anv\u00e4nda det i ditt dagliga arbete eller hur du v\u00e4ljer att g\u00e5 vidare med projektet som helhet.<\/p>\n<h3>Uppdaterar kataloger<\/h3>\n<p>En av de saker jag f\u00f6rs\u00f6ker g\u00f6ra \u00e4r att bryta ner mina kataloger, s\u00e5 att de \u00e4r s\u00e5 tydliga som m\u00f6jligt. Det betyder att jag f\u00f6rs\u00f6ker g\u00f6ra f\u00f6ljande:<\/p>\n<ul>\n<li>skapa en <strong>tillg\u00e5ngskatalog<\/strong> f\u00f6r JavaScript och stilmallar,<\/li>\n<li>skapa en <strong>src-<\/strong> katalog f\u00f6r alla PHP-filer,<\/li>\n<li>skapa en <strong>spr\u00e5kkatalog<\/strong> f\u00f6r internationaliseringsfiler,<\/li>\n<li>beh\u00e5ll alla andra filer i roten av f\u00f6rvaret, s\u00e5 det \u00e4r l\u00e4tt f\u00f6r andra att f\u00f6lja med den medf\u00f6ljande README.<\/li>\n<\/ul>\n<p>F\u00f6r att g\u00f6ra detta ska jag f\u00f6rst ta bort och flytta n\u00e5gra saker. Jag har f\u00f6rs\u00f6kt organisera detta i en viss ordning:<\/p>\n<ol>\n<li>Jag ska ta bort filen <strong>README.txt<\/strong>. Den h\u00e4r filen anv\u00e4nds som en standard README-mall om du ska skicka kod till WordPress Plugin Repository, men det \u00e4r inte n\u00f6dv\u00e4ndigt f\u00f6r vad jag vill ha f\u00f6r Boilerplate.<\/li>\n<li>Jag kommer att byta namn p\u00e5 <strong>plugin.php<\/strong> till <strong>Plugin<em><\/em><\/strong> .php<em><\/em> f\u00f6r att f\u00f6lja PSR-konventioner.<\/li>\n<li>Jag kommer ocks\u00e5 att byta namn p\u00e5 <strong>lang<\/strong> till <strong>spr\u00e5k.<\/strong><\/li>\n<li>Jag ska skapa en <strong>tillg\u00e5ngskatalog<\/strong> och flytta och sedan flytta <strong>css-<\/strong> och <strong>js-<\/strong> katalogerna till den katalogen. Jag kommer att skapa en <strong>dev<\/strong> -underkatalog i var och en av dessa kataloger d\u00e4r vi kan arbeta med Sass och unminifierade JavaScript-filer (som b\u00e5da kommer senare i serien).<\/li>\n<li>Efter det skapar jag en <strong>src-<\/strong> katalog och flyttar <strong>visningsformatmallen<\/strong> till den katalogen.<\/li>\n<li>Jag kommer ocks\u00e5 att byta namn p\u00e5 <strong>vyer<\/strong> till <strong>vyer<\/strong> och \u00e4ven versaler i filerna som finns i den.<\/li>\n<li>Slutligen ska jag flytta upp allt till roten av katalogen. Detta inneb\u00e4r att <strong>widget-boilerplate<\/strong> kommer att f\u00f6rsvinna och alla filer kommer att finnas i rotkatalogen f\u00f6r f\u00f6rvaret.<\/li>\n<\/ol>\n<p>Det \u00e4r m\u00e5nga steg, men de \u00e4r sm\u00e5. Jag gillar att l\u00e4gga ut dem f\u00f6rst s\u00e5 att det \u00e4r tydligt vad som kommer att h\u00e4nda under resten av det h\u00e4r avsnittet.<\/p>\n<h4>Ta bort README<\/h4>\n<p>F\u00f6r att g\u00f6ra detta, skriv bara in f\u00f6ljande kommando i din terminal fr\u00e5n roten av <strong>widget-boilerplate-<\/strong> katalogen:<\/p>\n<pre><code>$ rm readme.txt<\/code><\/pre>\n<p>Detta tar bort filen. Om du anger f\u00f6ljande kommando i din terminal:<\/p>\n<pre><code>$ git status<\/code><\/pre>\n<p>Du borde se n\u00e5got s\u00e5nt h\u00e4r:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d77468a.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-161542-61e724d77468a.png\" alt=\"WordPress-widgets: Refactoring, del 1\"><\/a><\/p>\n<p>Jag \u00e4r ett fan av att se till att de olika f\u00f6r\u00e4ndringarna som drivs upp \u00e4r tydliga och koncisa s\u00e5 att det \u00e4r l\u00e4ttare att rulla tillbaka dem en i taget. S\u00e5 l\u00e5t oss g\u00e5 vidare och engagera oss och driva p\u00e5 denna f\u00f6r\u00e4ndring.<\/p>\n<p>Skriv f\u00f6ljande:<\/p>\n<pre><code>$ git rm README.txt\n$ git add. $ git commit -n -m \"Removing the original README.txt template.\"\n$ git push<\/code><\/pre>\n<p>Detta kommer att ber\u00e4tta f\u00f6r Git att ta bort filen, l\u00e4gga till den enda \u00e4ndringen i \u00e4ndringsupps\u00e4ttningen, utf\u00f6ra den utan att k\u00f6ra n\u00e5gra kodkvalitetsverktyg (eftersom vi inte beh\u00f6ver g\u00f6ra det just nu, annars kommer det att misslyckas), och kommer att driva det till fj\u00e4rrf\u00f6rvarets <strong>utvecklingsgren<\/strong>.<\/p>\n<p>Nu n\u00e4r vi har gjort det, l\u00e5t oss g\u00e5 vidare och byta namn p\u00e5 n\u00e5gra filer.<\/p>\n<h4>Byta namn p\u00e5 filer<\/h4>\n<p>Medan vi h\u00e5ller p\u00e5 kommer vi inte bara byta namn p\u00e5 <strong>plugin<em><\/em><\/strong> .php<em><\/em>-filen utan \u00e4ven de andra PHP-filerna. Det h\u00e4r \u00e4r filer som logiskt kan grupperas i samma \u00e4ndringsupps\u00e4ttning, s\u00e5 det \u00e4r vettigt att g\u00e5 vidare och g\u00f6ra det.<\/p>\n<p>S\u00e5 fr\u00e5n din terminal, skriv in f\u00f6ljande kommandon:<\/p>\n<pre><code>$ mv plugin.php Plugin.php\n$ mv views\/admin.php views\/Admin.php\n$ mv views\/widget.php views\/Widget.php<\/code><\/pre>\n<p>N\u00e4r vi g\u00f6r detta har vi inte gjort n\u00e5gra \u00e4ndringar i filer \u00e4nnu, s\u00e5 det finns inget att binda. L\u00e5t oss g\u00e5 vidare med att byta namn p\u00e5 kataloger.<\/p>\n<h4>Skapa kataloger; Byt namn p\u00e5 kataloger<\/h4>\n<p>Precis som vi gjorde med filerna, l\u00e5t oss g\u00e5 vidare och skapa en ny <strong>tillg\u00e5ngskatalog<\/strong>. Ange f\u00f6ljande kommando i din terminal:<\/p>\n<pre><code>$ mkdir assets<\/code><\/pre>\n<p>D\u00e4refter vill vi flytta <strong>css-<\/strong> och <strong>js-<\/strong> katalogerna till den katalogen s\u00e5 skriv in f\u00f6ljande i terminalen ocks\u00e5:<\/p>\n<pre><code>$ mv css assets\n$ mv js assets<\/code><\/pre>\n<p>Och l\u00e5t oss byta namn p\u00e5 <strong>lang<\/strong> &#8211; katalogen till <strong>Spr\u00e5k<\/strong> genom att ange f\u00f6ljande kommando:<\/p>\n<pre><code>$ mv lang Languages<\/code><\/pre>\n<p>L\u00e5t oss slutligen byta namn p\u00e5 <strong>vyn<\/strong> till <strong>Views:<\/strong><\/p>\n<pre><code>$ mv views Views<\/code><\/pre>\n<p>Vid det h\u00e4r laget har vi gjort allt vi kan med de filer som f\u00f6r n\u00e4rvarande finns i huvudkatalogen. Vi beh\u00f6ver dock fortfarande f\u00f6rbereda underkataloger f\u00f6r v\u00e5ra f\u00f6rbearbetade tillg\u00e5ngar.<\/p>\n<p>Innan du g\u00f6r det \u00e4r det dock en god vana att k\u00f6ra en snabb <strong>git-statuskontroll<\/strong> f\u00f6r att se vad som finns som kan l\u00e4ggas till i en \u00e4ndringsupps\u00e4ttning. Om ditt f\u00f6rr\u00e5d \u00e4r som mitt, kommer du sannolikt att se n\u00e5got i stil med f\u00f6ljande:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724da758f2.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-161542-61e724da758f2.png\" alt=\"WordPress-widgets: Refactoring, del 1\"><\/a><\/p>\n<p>I det h\u00e4r fallet tycker jag att det \u00e4r okej att l\u00e4gga till allt i en enda \u00e4ndringsupps\u00e4ttning med en kommentar som indikerar att vi har bytt namn och flyttat filer.<\/p>\n<p>Du kan skilja dig \u00e5t och i s\u00e5 fall \u00e4r det helt okej. Dina kommandon kommer att skilja sig lite fr\u00e5n mina men h\u00e4r \u00e4r vad jag har f\u00f6r mitt engagemang:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Creating new directories; Renaming files.\"\n$ git push<\/code><\/pre>\n<p>Nu, vidare till underkatalogerna f\u00f6r v\u00e5ra f\u00f6rbearbetade filer.<\/p>\n<h4>Skapa underkataloger<\/h4>\n<p>I CSS-katalogen, skapa en underkatalog som heter <strong>dev<\/strong> och skapa en tom fil som heter <strong>admin.scss<\/strong> och <strong>widget.scss<\/strong> eftersom vi kommer att arbeta med dessa filer senare i serien.<\/p>\n<p>L\u00e4gg sedan till en <strong>dev-<\/strong> katalog till JavaScript-katalogen och l\u00e4gg till tomma <strong>admin.js<\/strong> -filer och <strong>widget.js-<\/strong> filer till dessa filer. Om du k\u00e4nner dig s\u00e5 ben\u00e4gen kan du flytta de redan existerande filerna till <strong>dev<\/strong> &#8211; katalogerna eftersom det h\u00e4r \u00e4r filerna som vi kommer att anv\u00e4nda som grund f\u00f6r v\u00e5ra utvecklingsfiler.<\/p>\n<p>Det \u00e4r ett valfritt steg; men jag har g\u00e5tt vidare och gjort det eftersom det \u00e4r s\u00e5 jag f\u00f6redrar att arbeta. H\u00e4r \u00e4r upps\u00e4ttningen av kommandon som jag har k\u00f6rt.<\/p>\n<p>Fr\u00e5n <strong>css-<\/strong> katalogen&#8230;<\/p>\n<pre><code>$ mkdir dev\n$ mv admin.css admin.scss &amp;&amp; mv widget.css widget.scss\n$ mv *.scss dev<\/code><\/pre>\n<p>Ovan har jag skapat <strong>dev-<\/strong> katalogen f\u00f6r mina stilmallar, d\u00f6pt om dem till Sass-filer och flyttat dem till <strong>dev-<\/strong> katalogen.<\/p>\n<p>Innan du g\u00e5r vidare, l\u00e5t det nu vara en bra tid att g\u00f6ra en <strong>git-statuskontroll<\/strong> och genomf\u00f6ra \u00e4ndringar relaterade till stilmallarna:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Renaming and moving stylesheets into a dev directory.\"\n$ git push<\/code><\/pre>\n<p>Nu, fr\u00e5n <strong>js-<\/strong> katalogen&#8230;<\/p>\n<pre><code>$ mkdir dev\n$ mv *.js dev<\/code><\/pre>\n<p>Eftersom vi inte beh\u00f6ver \u00e4ndra filtypen f\u00f6r de associerade filerna kan vi helt enkelt flytta dem till den nya katalogen.<\/p>\n<p>Slutligen, l\u00e5t oss g\u00f6ra samma sak och se om det finns n\u00e5gra \u00e4ndringar som vi kan driva upp genom en snabb <strong>git-statuskontroll<\/strong> (vilket det borde finnas). H\u00e4r \u00e4r en lista \u00f6ver de kommandon jag k\u00f6rde f\u00f6r att utf\u00f6ra och driva mina \u00e4ndringar:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Adding a JavaScript dev directory and moving the development files.\"\n$ git push<\/code><\/pre>\n<p>Vi \u00e4r n\u00e4stan klara. Allt som \u00e5terst\u00e5r att g\u00f6ra \u00e4r att flytta vissa kataloger till roten av f\u00f6rvaret och byta namn p\u00e5 k\u00e4rnkatalogen till <strong>src<\/strong>. S\u00e5 l\u00e5t oss g\u00f6ra det nu.<\/p>\n<h3>Flytta kataloger till roten<\/h3>\n<p>I huvudsak m\u00e5ste vi flytta allt utom plugin-filen och <strong>Views<\/strong> &#8211; katalogen fr\u00e5n <strong>widget-boilerplate-<\/strong> katalogen, och vi m\u00e5ste byta namn p\u00e5 <strong>widget-boilerplate<\/strong> till <strong>src<\/strong>.<\/p>\n<p>L\u00e5ter enkelt, eller hur? Det \u00e4r ganska okomplicerat. Fr\u00e5n <strong>widget-boilerplate-<\/strong> katalogen:<\/p>\n<pre><code>$ mv assets .. &amp;&amp; mv languages ..\n$ cd ..\n$ mv widget-boilerplate src<\/code><\/pre>\n<p>Sedan g\u00f6r jag \u00e4ndringen till GitHub med f\u00f6ljande:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Reorganizing the directory structure.\"\n$ git push<\/code><\/pre>\n<p>Nu har vi en mycket modernare katalogstruktur inr\u00e4ttad. Du kan se det h\u00e4r <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\/tree\/develop\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i min utvecklingsgren<\/a><\/strong>.<\/p>\n<h3>Ett ord om OOP<\/h3>\n<p>Och nu n\u00e4r vi har allt detta p\u00e5 plats kan vi b\u00f6rja skriva kod. Men missa dig inte: En del av objektorienterad programmering \u00e4r ocks\u00e5 objektorienterad analys och objektorienterad design.<\/p>\n<p>Vad vi har gjort i det h\u00e4r inl\u00e4gget \u00e4r i huvudsak att till\u00e4mpa en objektorienterad arkitektonisk design baserad p\u00e5 analysen av hur pluginet passar ihop.<\/p>\n<p>N\u00e4sta del \u00e4r dock att uppdatera koden f\u00f6r att bli av med allt r\u00f6tt vi har sett n\u00e4r vi sniffade v\u00e5r kod.<\/p>\n<h2>I n\u00e4sta inl\u00e4gg<\/h2>\n<p>Det prim\u00e4ra m\u00e5let med n\u00e4sta inl\u00e4gg \u00e4r att forts\u00e4tta med att uppdatera kodningsstandarderna s\u00e5 att vi har l\u00f6st alla problem som orsakas av v\u00e5r IDE eller genom kodkvalitetsverktygen vi k\u00f6r p\u00e5 kommandoraden.<\/p>\n<p>Vi borde ocks\u00e5 ha ett mycket renare, mer organiserat f\u00f6rr\u00e5d och vara i en position d\u00e4r vi \u00e4r redo att sl\u00e5 samman v\u00e5rt arbete tillbaka till huvudgrenen.<\/p>\n<p>F\u00f6r nu, se dock till att du har ett bra grepp om allt ovan innan du forts\u00e4tter eftersom det \u00e4r n\u00f6dv\u00e4ndigt att f\u00f6rst\u00e5 f\u00f6r resten av det arbete vi har framf\u00f6r oss.<\/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>Detta kommer inte bara att f\u00f6rb\u00e4ttra kodkvaliteten utan ocks\u00e5 leda oss genom n\u00e5gra objektorienterade principer som vi kan till\u00e4mpa n\u00e4r vi bygger v\u00e5ra WordPress-widgets.<\/p>\n","protected":false},"author":1,"featured_media":235111,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[901,724,868],"tags":[1173],"class_list":["post-230609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koda","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230609","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=230609"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230609\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/235111"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}