{"id":229044,"date":"2022-11-10T13:50:00","date_gmt":"2022-11-10T10:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229044"},"modified":"2022-11-10T13:55:52","modified_gmt":"2022-11-10T10:55:52","slug":"bibliotek-foer-wordpress-plugins-del-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/bibliotek-foer-wordpress-plugins-del-1\/","title":{"rendered":"Bibliotek f\u00f6r WordPress-plugins, del 1"},"content":{"rendered":"\n<p>Ju mer du arbetar med WordPress, speciellt om du anv\u00e4nder verktyg som <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> och liknande, desto mer kommer du sannolikt att hitta vissa bibliotek, verktyg och liknande saker som ligger till grund f\u00f6r projekt som du arbetar med.<\/p>\n<p>Ibland kanske du hittar dem n\u00e4r du tittar igenom andras kod, kanske hittar du dem n\u00e4r du surfar p\u00e5 GitHub, eller s\u00e5 kanske <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">n\u00e5gon<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">du<\/a> arbetar med kommer att f\u00f6resl\u00e5 ett bibliotek (eller n\u00e5gra) beroende p\u00e5 ett projekt.<\/p>\n<p>Personligen har jag haft erfarenhet av allt ovanst\u00e5ende, och ju mer jag arbetar med att bygga l\u00f6sningar f\u00f6r mig sj\u00e4lv eller andra, desto mer kommer jag p\u00e5 mig sj\u00e4lv med att s\u00e4tta upp samma grund f\u00f6r varje projekt (vilket vanligtvis \u00e4r ett plugin av n\u00e5got slag) .<\/p>\n<h2>Bibliotek f\u00f6r WordPress-plugins<\/h2>\n<p>F\u00f6r det \u00e4ndam\u00e5let t\u00e4nkte jag att det kan vara v\u00e4rt att dela de bibliotek jag anv\u00e4nder n\u00e4r jag bygger WordPress-plugins. Inneh\u00e5llet kommer att spridas \u00f6ver n\u00e5gra inl\u00e4gg f\u00f6r att h\u00e5lla var och en kort och fokuserad, men kanske hittar du n\u00e5got som du inte tidigare har anv\u00e4nt (eller som kommer att f\u00f6rb\u00e4ttra din nuvarande anv\u00e4ndning).<\/p>\n<h3><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/h3>\n<p>Alla som har skrivit n\u00e5gon kod i vilket programmeringsspr\u00e5k som helst \u00e4r troligen bekant med alla typer av *Unit-bibliotek. Kort sagt, det \u00e4r ett s\u00e4tt att enkelt skriva enhetstester.<\/p>\n<p>Fr\u00e5n <a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">projektets hemsida<\/a> :<\/p>\n<blockquote>\n<p>PHPUnit \u00e4r ett programmerarorienterat testramverk f\u00f6r PHP. Det \u00e4r en instans av xUnit-arkitekturen f\u00f6r ramverk f\u00f6r enhetstestning.<\/p>\n<\/blockquote>\n<p>Jag \u00e4r inte n\u00e5gon som n\u00f6dv\u00e4ndigtvis prenumererar p\u00e5 100% kodt\u00e4ckning (och det \u00e4r ett \u00e4mne f\u00f6r ett annat inl\u00e4gg), men om du ska skriva enhetstester, s\u00e5 \u00e4r detta biblioteket defacto f\u00f6r att enhetstesta din kod.<\/p>\n<h3><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/h3>\n<p>Under hela det h\u00e4r \u00e5ret har <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> utan tvekan blivit mitt favoritbibliotek (\u00e4ven om det har f\u00f6rb\u00e4ttrats av ytterligare bibliotek som jag kommer att t\u00e4cka genom den h\u00e4r serien av inl\u00e4gg).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78ddea0549.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-166075-61e78ddea0549.png\" alt=\"Bibliotek f\u00f6r WordPress-plugins, del 1\"><\/a><\/p>\n<p>Jag har pratat om det i andra inl\u00e4gg. \u00c4ven om det beskriver sig sj\u00e4lv som ett &quot;kodkvalitetsverktyg&quot; kan du verkligen inte l\u00e5ta bli att se f\u00f6rdelarna f\u00f6rr\u00e4n du kopplar upp den f\u00f6r att titta p\u00e5 din kod innan du f\u00f6rs\u00f6ker \u00f6verf\u00f6ra den till ett arkiv.<\/p>\n<p>Den l\u00e4ngre beskrivningen \u00e4r:<\/p>\n<blockquote>\n<p>Om testerna misslyckas kommer du inte att kunna genomf\u00f6ra dina \u00e4ndringar. Det h\u00e4r praktiska verktyget kommer inte bara att f\u00f6rb\u00e4ttra din kodbas, det kommer ocks\u00e5 att l\u00e4ra dina medarbetare att skriva b\u00e4ttre kod enligt de b\u00e4sta praxis som ni har best\u00e4mt som ett team.<\/p>\n<\/blockquote>\n<p>Och precis som om du har anv\u00e4nt n\u00e5gon <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/anvaenda-psr-erna-versus-wordpress-kodningsstandarderna\/\" title=\"kodningsstandardsk\u00e4rm\">kodningsstandardsk\u00e4rm<\/a> i din IDE, \u00e4r detta en av de saker som kan vara frustrerande att anv\u00e4nda till en b\u00f6rjan.<\/p>\n<p>Men n\u00e4r du l\u00e4r dig det blir det l\u00e4ttare att veta vad det kommer att flagga s\u00e5 att du automatiskt b\u00f6rjar skriva kod som har en h\u00f6gre kvalitetsniv\u00e5.<\/p>\n<h3><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/h3>\n<p><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> (f\u00f6rkortning av PHP Mess Detector) fungerar bra tillsammans med GrumPHP genom att den kan bearbeta din kod innan du \u00f6verf\u00f6r den till ett arkiv.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de324f34.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-166075-61e78de324f34.png\" alt=\"Bibliotek f\u00f6r WordPress-plugins, del 1\"><\/a><\/p>\n<p>Projektet beskriver sig sj\u00e4lv som:<\/p>\n<blockquote>\n<p>Det tar en given PHP-k\u00e4llkodsbas och letar efter flera potentiella problem inom den k\u00e4llan.<\/p>\n<\/blockquote>\n<p>Som med m\u00e5nga liknande bibliotek kan just det h\u00e4r konfigurera en upps\u00e4ttning regler s\u00e5 att du enkelt kan sl\u00e5 p\u00e5 och av saker baserat p\u00e5 vad du eller ditt team f\u00f6redrar.<\/p>\n<h3><a href=\"https:\/\/github.com\/nikic\/PHP-Parser\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP-Parser<\/a><\/h3>\n<p>Tanken p\u00e5 att ha ett PHP-parserbibliotek f\u00f6r att analysera din kod verkar lite meta, eller hur? Jag menar, du har PHP-runtime som g\u00f6r det, och m\u00e5nga IDE:er g\u00f6r det ocks\u00e5, men det h\u00e4r fungerar p\u00e5 ett lite annorlunda s\u00e4tt.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de6eec7f.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-166075-61e78de6eec7f.png\" alt=\"Bibliotek f\u00f6r WordPress-plugins, del 1\"><\/a><\/p>\n<p>Fr\u00e5n f\u00f6rvaret:<\/p>\n<blockquote>\n<p>Detta \u00e4r en PHP 5.2 till PHP 7.1 parser skriven i PHP. Dess syfte \u00e4r att f\u00f6renkla statisk kodanalys och manipulation.<\/p>\n<\/blockquote>\n<p>F\u00f6r dem som \u00e4r bekanta med hur programmeringsspr\u00e5k (och d\u00e4rmed grammatik) fungerar, kommer id\u00e9n att g\u00f6ra <a href=\"https:\/\/en.wikipedia.org\/wiki\/Static_program_analysis\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">statisk analys<\/a> p\u00e5 koden vara vettig.<\/p>\n<p>Oavsett vilket \u00e4r detta \u00e4nnu ett bibliotek som hj\u00e4lper till att f\u00f6rb\u00e4ttra kodens kvalitet genom att minska kodens komplexitet.<\/p>\n<h2>Det kommer mera<\/h2>\n<p>I slutet av serien kommer jag att dela med mig av hur du infogar alla dessa i en <code>composer.json<\/code>fil som du kan anv\u00e4nda i ditt projekt.<\/p>\n<p>N\u00e4r du arbetar med en l\u00f6sning f\u00f6r en klient kan du beh\u00f6va \u00e4ndra versionerna av vart och ett av dessa verktyg, men du kommer att uppt\u00e4cka att de flesta av dem erbjuder st\u00f6d som g\u00e5r tillbaka till PHP5.6 och upp till PHP7.1.<\/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 f\u00f6rsta 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":166076,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1022,922,724,868],"tags":[1173],"class_list":["post-229044","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anvandbara-webbplatser","category-oevrig","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229044","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=229044"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/166076"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}