{"id":228985,"date":"2022-11-08T10:06:00","date_gmt":"2022-11-08T07:06:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228985"},"modified":"2022-11-09T05:04:12","modified_gmt":"2022-11-09T02:04:12","slug":"anvaenda-psr-erna-versus-wordpress-kodningsstandarderna","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/anvaenda-psr-erna-versus-wordpress-kodningsstandarderna\/","title":{"rendered":"Anv\u00e4nda PSR:erna (versus WordPress-kodningsstandarderna)"},"content":{"rendered":"\n<p>Vid det h\u00e4r laget vet jag inte hur m\u00e5nga artiklar jag har skrivit om vikten av <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Coding Standards<\/a> (tillr\u00e4ckligt f\u00f6r att l\u00e4nka till dem <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">h\u00e4r<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">h\u00e4r<\/a>, och <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">h\u00e4r<\/a>, antar jag, vilket r\u00e4knas f\u00f6r n\u00e5got).<\/p>\n<p>Men efter att ha gjort tillr\u00e4ckligt m\u00e5nga projekt f\u00f6r kunder och <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">arbetat med utvecklare<\/a> som \u00e4r mycket smartare och bekanta med avancerade verktyg \u00e4n jag, \u00e4r jag p\u00e5 en plats d\u00e4r jag v\u00e4ljer att <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">b\u00f6rja anv\u00e4nda<\/a> PSRs i WordPress WordPress-utveckling.<\/p>\n<p>\u00c5h dramat, eller hur?<\/p>\n<p>Men allvarligt. Det finns anledningar till detta, och det finns tillf\u00e4llen d\u00e5 jag tycker att WordPress-kodningsstandarderna fortfarande b\u00f6r anv\u00e4ndas, men jag blir snabbt mer \u00f6vertygad om att man bygger ett modernt projekt ovanp\u00e5 WordPress b\u00f6r anv\u00e4nda mer moderna PHP-verktyg (vilket jag ska kort n\u00e4mna senare).<\/p>\n<h2>Anv\u00e4nda PSR i WordPress-utveckling<\/h2>\n<p>Inl\u00e4gg som detta ger ofta insikter om n\u00e5gon debatt eller dramatisk respons inom WordPress, vilket inte \u00e4r min avsikt och inte heller n\u00e5got som jag tror \u00e4r n\u00f6dv\u00e4ndigt. F\u00f6r att vara \u00e4rlig s\u00e5 k\u00e4nner jag en hel del <a href=\"https:\/\/twitter.com\/GaryJ\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">andra<\/a> <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">utvecklare<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">som<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">alla<\/a> har gjort detta f\u00f6r l\u00e4nge sedan, pratat om det, g\u00e5tt fram\u00e5t och fortsatt att ha framg\u00e5ng b\u00e5de i sin verksamhet och i sina hobbyprojekt.<\/p>\n<p>Men med tanke p\u00e5 att jag har pratat om den ena mot den andra s\u00e5 mycket, t\u00e4nkte jag att det var v\u00e4rt att dela med mig av min syn p\u00e5 varf\u00f6r jag v\u00e4ljer att g\u00f6ra detta skifte nu och logiken bakom det.<\/p>\n<h3>1 Paritet med PHP-gemenskapen<\/h3>\n<p>Under det senaste \u00e5ret eller s\u00e5, och egentligen bara under de senaste m\u00e5naderna av detta \u00e5r, har jag blivit mer van vid:<\/p>\n<ul>\n<li>mer erfarna PHP-orienterade utvecklarv\u00e4nner som st\u00f6der verktyg som f\u00f6rv\u00e4ntar sig att PSR:erna kommer att antas,<\/li>\n<li>anv\u00e4ndningen av <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart och \/\/@codingStandardsIgnoreEnd<\/a> i min kod,<\/li>\n<li>anpassade regelupps\u00e4ttningar f\u00f6r mina projekt baserat p\u00e5 de milj\u00f6er som de ligger bakom distribuerade,<\/li>\n<li>och mer.<\/li>\n<\/ul>\n<p>I slut\u00e4ndan handlar det om att vilja bibeh\u00e5lla paritet (eller lite av det) med den st\u00f6rre PHP-gemenskapen i stort och samtidigt skriva l\u00e4sbar, standardbaserad kod ovanp\u00e5 WordPress. Och jag skulle ocks\u00e5 vilja anv\u00e4nda n\u00e5gra andra verktyg och nyare versioner av befintliga verktyg (som jag kommer att diskutera senare i det h\u00e4r inl\u00e4gget).<\/p>\n<h3>2 problem med moderna milj\u00f6er<\/h3>\n<p>N\u00e4r detta inl\u00e4gg skrivs \u00e4r <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (som kr\u00e4vs f\u00f6r att k\u00f6ra WordPress Coding Standards) version <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/tree\/3.0.2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3.0.2<\/a>. Det finns dock kompatibilitetsproblem med PHPCS och med WordPress-kodningsstandarderna. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Specifikt<\/a> :<\/p>\n<blockquote>\n<p>Den nya versionen av PHP CodeSniffer har n\u00e5gra trevliga funktioner, men introducerar brytande f\u00f6r\u00e4ndringar som g\u00f6r att WordPress-kodningsstandarderna inte \u00e4r kompatibla.<\/p>\n<\/blockquote>\n<p>F\u00f6r att vara tydlig (och p\u00e5 grund av programvarans natur) \u00e4r det en tidsfr\u00e5ga innan det \u00e4r \u00e5tg\u00e4rdat. Men om du arbetar p\u00e5 en kodbas och du anv\u00e4nder Composer och WordPress-kodningsstandarderna, m\u00e5ste du uttryckligen st\u00e4lla in PHP CodeSniffer-versionen snarare \u00e4n vad den senaste versionen f\u00f6r n\u00e4rvarande \u00e4r.<\/p>\n<p>Dessutom har jag upplevt problem med klienter d\u00e4r jag inte anammat PSR:erna i WordPress-utveckling har resulterat i konstigt beteende vid implementering av kod. Kanske skulle man kunna argumentera f\u00f6r att de borde anpassa milj\u00f6n, men om de arbetar f\u00f6r att ha de modernaste verktygen tillg\u00e4ngliga f\u00f6r de m\u00e4nniskor som anv\u00e4nder dem, varf\u00f6r g\u00e5 tillbaka?<\/p>\n<h3>3 Kompatibilitet med moderna verktyg<\/h3>\n<p>Slutligen finns det ett antal moderna verktyg som jag inte har kunnat anv\u00e4nda, \u00e4n mindre inte kunnat l\u00e4ra mig, p\u00e5 grund av vad som \u00e4r och vad som inte st\u00f6ds av versionshanteringens natur.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.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-166244-61e790be9cd6b.png\" alt=\"Anv\u00e4nda PSR:erna (versus WordPress-kodningsstandarderna)\" ><\/a><\/p>\n<p>Till exempel anv\u00e4nde <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vi<\/a> <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> i ett nyligen genomf\u00f6rt projekt som har st\u00f6d f\u00f6r en m\u00e4ngd olika verktyg men vi kunde inte anv\u00e4nda, s\u00e4g, <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> p\u00e5 grund av bristande antagande av PSR. N\u00e4r det g\u00e4ller mig:<\/p>\n<ul>\n<li>Jag vill st\u00e4ndigt h\u00f6ja mina f\u00e4rdigheter som utvecklare (och, i detta sammanhang, PHP-utvecklare),<\/li>\n<li>brist p\u00e5 st\u00f6d f\u00f6r modernare verktyg s\u00e4tter mig i ett h\u00e5llm\u00f6nster som jag annars inte skulle uppleva,<\/li>\n<li>Jag vill forts\u00e4tta jobba med WordPress men g\u00f6r det med ett modernare arbetsfl\u00f6de<\/li>\n<\/ul>\n<p>Och just nu skapar inte anv\u00e4ndningen av PSR en klyfta mellan vad resten av PHP-gemenskapen g\u00f6r och vad WordPress g\u00f6r. S\u00e5 jag skulle vilja g\u00e5 fram\u00e5t samtidigt som jag forts\u00e4tter att arbeta med projekt ut\u00f6ver programvara som jag fortfarande tycker om att anv\u00e4nda.<\/p>\n<h2>Vad s\u00e4gs om WordPress-kodningsstandarderna<\/h2>\n<p>S\u00e5 vad betyder detta om WordPress-kodningsstandarderna och tidigare inl\u00e4gg? Ingenting egentligen. Som jag ser det: WordPress-kodningsstandarderna b\u00f6r anv\u00e4ndas n\u00e4r du arbetar med WordPress Core eller n\u00e5got som kommer att vara n\u00e4ra integrerat i den.<\/p>\n<p>Men om du arbetar med n\u00e5got som sitter ovanp\u00e5 WordPress eller n\u00e5got som anv\u00e4nder WordPress som grund och du kan anv\u00e4nda PSR:erna i WordPress-utveckling tillsammans med verktyg som kan hj\u00e4lpa till att \u00f6ka kvaliteten p\u00e5 kodbasen som du bygger.<\/p>\n<p>S\u00e5, \u00e5tminstone f\u00f6r nu, \u00e4r det perspektivet jag kommer att anta. Jag \u00e4r angel\u00e4gen om att se hur det ser ut under de n\u00e4rmaste m\u00e5naderna. Och n\u00e4r det g\u00e4ller allt annat jag har delat, kommer jag att dela med mig av aspekterna av att g\u00f6ra det h\u00e4r bytet.<\/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>Efter tillr\u00e4ckligt m\u00e5nga projekt som arbetar med smartare utvecklare \u00e4r jag p\u00e5 ett st\u00e4lle d\u00e4r jag kan b\u00f6rja anv\u00e4nda PSRs i WordPress-utveckling.<\/p>\n","protected":false},"author":1,"featured_media":166245,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,724,868],"tags":[1173],"class_list":["post-228985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228985","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=228985"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}