{"id":229052,"date":"2022-11-10T14:03:00","date_gmt":"2022-11-10T11:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229052"},"modified":"2022-11-10T14:03:05","modified_gmt":"2022-11-10T11:03:05","slug":"bibliotek-foer-wordpress-plugins-del-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/bibliotek-foer-wordpress-plugins-del-2\/","title":{"rendered":"Bibliotek f\u00f6r WordPress-plugins, del 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/bibliotek-foer-wordpress-plugins-del-1\/\" title=\"Ig\u00e5r\">Ig\u00e5r<\/a> startade jag en kort serie inl\u00e4gg som t\u00e4cker verktyg som jag tror g\u00f6r f\u00f6r att skriva h\u00f6gkvalitativ kod i ett WordPress-projekt (s\u00e4rskilt de som \u00e4r plugins byggda med ett objektorienterat tillv\u00e4gag\u00e5ngss\u00e4tt).<\/p>\n<p>Om du inte har l\u00e4st inl\u00e4gget \u00e4r den f\u00f6rsta upps\u00e4ttningen verktyg som n\u00e4mns f\u00f6ljande:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/li>\n<li><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/li>\n<\/ul>\n<p>Det finns ungef\u00e4r fem verktyg till som jag gillar att forts\u00e4tta k\u00f6ra p\u00e5 mina projekt. S\u00e5 h\u00e4r \u00e4r de n\u00e4sta tre med de tv\u00e5 sista kommer i n\u00e4sta inl\u00e4gg.<\/p>\n<h2>Bibliotek f\u00f6r WordPress-plugins, forts\u00e4ttning<\/h2>\n<p>Som tidigare n\u00e4mnts tycker jag att dessa verktyg \u00e4r anv\u00e4ndbara n\u00e4r jag arbetar med objektorienterade WordPress-plugins. Dessutom \u00e4r dessa naturligtvis spridda \u00f6ver ett f\u00e5tal inl\u00e4gg f\u00f6r att h\u00e5lla var och en kort och fokuserad.<\/p>\n<h3><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a><\/h3>\n<p>Om du har l\u00e4st den h\u00e4r bloggen hur l\u00e4nge som helst, har du f\u00f6rmodligen l\u00e4st ett inl\u00e4gg eller \u00e5tminstone n\u00e4mnt n\u00e5got om <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a>. Detta \u00e4r n\u00e5got som jag tycker, om inte annat s\u00e5 borde alla WordPress-utvecklare ha installerat i sin IDE.<\/p>\n<p>Fr\u00e5n projektets arkivsida:<\/p>\n<blockquote>\n<p>PHP_CodeSniffer tokeniserar PHP-, JavaScript- och CSS-filer och uppt\u00e4cker brott mot en definierad upps\u00e4ttning kodningsstandarder.<\/p>\n<\/blockquote>\n<p>Nu n\u00e4r det g\u00e4ller regler \u00e4r det en annan sak. Vissa m\u00e4nniskor f\u00f6redrar <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress-kodningsstandarder<\/a> ; vissa f\u00f6redrar <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/anvaenda-psr-erna-versus-wordpress-kodningsstandarderna\/\" title=\"PSR2\">PSR2<\/a>, andra f\u00f6redrar andra upps\u00e4ttningar regler. Det handlar inte s\u00e5 mycket om vad du f\u00f6redrar s\u00e5 l\u00e4nge du eller ditt lag \u00e4r konsekventa.<\/p>\n<p>Och det \u00e4r vad just det h\u00e4r biblioteket hj\u00e4lper dig att g\u00f6ra. Dessutom skadar det inte att du kan integrera i din IDE (f\u00f6rutsatt att det \u00e4r en av de mer popul\u00e4ra redakt\u00f6rerna).<\/p>\n<h3><a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPCPD<\/a><\/h3>\n<p>PHPCPD \u00e4r ett enkelt bibliotek som analyserar din kod f\u00f6r att uppt\u00e4cka duplicerad kod \u2013 som vanligtvis kommer fr\u00e5n att kopieras och klistras in fr\u00e5n n\u00e5gon annanstans (\u00e4ven om det \u00e4r din kodbas). Tanken bakom biblioteket \u00e4r att minska dubblettkoden.<\/p>\n<\/p>\n<p>Och det blir inte mycket tydligare <a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e4n s\u00e5 h\u00e4r<\/a> :<\/p>\n<blockquote>\n<p>phpcpd \u00e4r en Copy\/Paste Detector (CPD) f\u00f6r PHP-kod.<\/p>\n<\/blockquote>\n<p>Med andra ord, det \u00e4r ett steg f\u00f6r att hj\u00e4lpa dig att h\u00e5lla den torr.<\/p>\n<h3><a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a><\/h3>\n<p>Om ett av m\u00e5len vi str\u00e4var efter i v\u00e5r kod \u00e4r att g\u00f6ra den s\u00e5 l\u00e4sbar som m\u00f6jligt f\u00f6r andra som kan plocka upp kodbasen, dela den eller bidra till den (s\u00e4rskilt i \u00f6ppen k\u00e4llkod), d\u00e5 m\u00e5ste vi se till att alla av v\u00e5ra v\u00e4rderingar har meningsfulla v\u00e4rderingar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166044-61e78d8e8d7a0.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-166044-61e78d8e8d7a0.png\" alt=\"Bibliotek f\u00f6r WordPress-plugins, del 2\"><\/a><\/p>\n<p>Att anv\u00e4nda siffror som \u00e4r meningsfulla f\u00f6r oss men som inte beskriver vad det \u00e4r koden g\u00f6r \u00e4r viktigt, men det \u00e4r inte n\u00e5got vi g\u00f6r, eller hur? Eller det kanske bara \u00e4r jag.<\/p>\n<p>Men det \u00e4r d\u00e4r <a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a> kommer in i bilden.<\/p>\n<blockquote>\n<p>phpmnd \u00e4r ett verktyg som hj\u00e4lper dig att uppt\u00e4cka magiska siffror i PHP-kod. Som standard anses 0 och 1 inte vara magiska siffror.<\/p>\n<\/blockquote>\n<p>Det \u00e4r ett enkelt bibliotek men anv\u00e4nds tillsammans med biblioteken i det h\u00e4r inl\u00e4gget, och det tidigare inl\u00e4gget kan hj\u00e4lpa till att kontinuerligt \u00f6ka kvaliteten p\u00e5 koden du bidrar med till dina arkiv.<\/p>\n<h2>Ytterligare en upps\u00e4ttning verktyg<\/h2>\n<p>Som n\u00e4mnts i f\u00f6rra inl\u00e4gget, \u00e4r m\u00e5let som jag arbetar med hur man infogar alla dessa i en <code>composer.json<\/code>fil som du kan anv\u00e4nda i ditt projekt.<\/p>\n<p>Kom ocks\u00e5 ih\u00e5g att beroende p\u00e5 projektet kan du beh\u00f6va v\u00e4lja en version av biblioteket baserat p\u00e5 den version av PHP du anv\u00e4nder.<\/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>Det andra inl\u00e4gget i en serie om biblioteken f\u00f6r WordPress-plugins som jag och mitt team anv\u00e4nder n\u00e4r vi arbetar med h\u00f6gkvalitativa l\u00f6sningar f\u00f6r andra.<\/p>\n","protected":false},"author":1,"featured_media":166045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1022,724],"tags":[1173],"class_list":["post-229052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anvandbara-webbplatser","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229052","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=229052"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/166045"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}