{"id":720,"date":"2023-10-07T05:18:00","date_gmt":"2023-10-07T05:18:00","guid":{"rendered":"https:\/\/webhotelsoversigt.dk\/blog\/?p=720"},"modified":"2023-10-01T05:29:16","modified_gmt":"2023-10-01T05:29:16","slug":"cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen","status":"publish","type":"post","link":"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/","title":{"rendered":"CakePHP 5.0 er landet og med en masse forbedringer til udvikleroplevelsen"},"content":{"rendered":"\n<p><strong><em>Opgradering til PHP 8.1 og forbedret typesystem<\/em><\/strong><\/p>\n\n\n\n<p>Igennem de seneste par \u00e5r, har PHP arbejdet h\u00e5rdt p\u00e5 at forbedre typesystemet. PHP har, ligesom JavaScript, ofte f\u00e5et kritik for at have et meget l\u00f8st typesystem, hvor alting kan v\u00e6re alting. Men i de seneste PHP versioner, specifikt siden PHP 8.1, er typesystemet blevet opgraderet markant med gode muligheder og funktioner til at sikre dine typer i dit PHP-program. Dette udnytter CakePHP ogs\u00e5 i den nye version 5.0, ved at kr\u00e6ve en minimumsversion af PHP p\u00e5 8.1.<\/p>\n\n\n\n<p>Der er god grund til at opgradere til PHP 8.1 og CakePHP 5.0. I tidligere versioner af CakePHP, har man ofte brugt et array til options p\u00e5 forskellige funktioner, foreksempel n\u00e5r man skulle lave kald til databasen. I den nye version er dette array blevet udskiftet med navngivne parametre. Det betyder at du nu selv bestemmer r\u00e6kkef\u00f8lgen af disse parametre og at du samtidig f\u00e5r meget bedre Intellisense fra din IDE, n\u00e5r du skal bruge disse funktioner.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald.png\"><img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"309\" src=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald.png\" alt=\"\" class=\"wp-image-722\" srcset=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald.png 858w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald-300x108.png 300w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald-768x277.png 768w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Eksempel-paa-navngivne-parametre-ved-databasekald-624x225.png 624w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><\/a><figcaption><em>Et eksempel p\u00e5 navngivne parametre ved et databasekald<\/em><\/figcaption><\/figure>\n\n\n\n<p>Hvis du opgraderer fra den gamle PHP minimumsversion 7.4 til 8.1 vil du opleve en markant hastighedsforbedring, da PHP 8.0 og frem nu bruger Just-in-time compilation. Dette er en teknik hvor koden bliver kompileret til maskinkode inden den bliver eksekveret, hvilket g\u00f8r programmet markant hurtigere. F\u00f8r PHP 8.0 blev din PHP-kode eksekveret i en virtuel maskine, hvilket er langsommere end det nye JIT.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">For\u00e6ldede moduler og funktioner er nu blevet fjernet<\/h1>\n\n\n\n<p>I hver ny version af CakePHP, er der moduler og funktioner der bliver markeret som for\u00e6ldet og de i en fremtidig version vil blive fjernet helt. Den helt store \u00e6ndring indenfor fjernet kode, er at modulet <em>Auth<\/em> nu er blevet fjernet helt fra CakePHP kernen. Det er blevet udviklet til at v\u00e6re sit eget plugin kaldet Authentication. Tanken bag dette er simpelthen oprydning og simplificering. At man ikke b\u00f8r inkludere kode i sit program man ikke anvender alligevel, og her er Authentication en af dem. Det nye plugin skal ogs\u00e5 ops\u00e6ttes anderledes end det gamle, og alt dette kan du l\u00e6se mere om i <a href=\"https:\/\/book.cakephp.org\/authentication\/2\/en\/index.html\">dokumentationen til pluginnet<\/a>.<\/p>\n\n\n\n<p>N\u00e5r du i SQL skal gruppere eller sortere dine resultater ud fra nogle parametre, bruger du keywordet `GROUP BY` og `ORDER BY`, men i CakePHP har dette heddet `group` eller `order`. Dette er nu blevet omd\u00f8bt til `groupBy` og `orderBy` for at holde det konsekvent med SQL. Endnu en ting der g\u00f8r udvikleroplevelsen bedre og simplere i CakePHP end tidligere.<\/p>\n\n\n\n<p>Det er nu ogs\u00e5 muligt at indl\u00e6se plugins direkte fra en config fil. F\u00f8rhen har man skulle tilf\u00f8je plugins direkte i sin `Application.php` fil og derfor ville de ogs\u00e5 blive committed til din Git versionskontrol, men i CakePHP 5.0 er det nu muligt at indl\u00e6se plugins dynamisk ved hj\u00e6lp af en config fil, f.eks. `config\/plugins.php`.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil.png\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"383\" src=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil.png\" alt=\"\" class=\"wp-image-723\" srcset=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil.png 927w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil-300x124.png 300w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil-768x317.png 768w, https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/CakePHP-5.0-Dokumentation-til-indlaesning-af-plugins-via-en-config-fil-624x258.png 624w\" sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><\/a><figcaption><em>CakePHP dokumentation p\u00e5 indl\u00e6sning af plugins via en config fil.<\/em><\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Opgradering til PHP 8.1 og forbedret typesystem Igennem de seneste par \u00e5r, har PHP arbejdet h\u00e5rdt p\u00e5 at forbedre typesystemet. PHP har, ligesom JavaScript, ofte f\u00e5et kritik for at have et meget l\u00f8st typesystem, hvor alting kan v\u00e6re alting. Men i de seneste PHP versioner, specifikt siden PHP 8.1, er typesystemet blevet opgraderet markant med [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":725,"comment_status":"open","ping_status":"open","sticky":false,"template":"blogpostnew.php","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CakePHP 5.0 er landet - masser forbedringer til udvikleroplevelsen<\/title>\n<meta name=\"description\" content=\"En ny version af CakePHP er landet - f\u00e5 overblikket over de nyes tiltag, som blandt andet inkluderer en forbedret udvikleroplevelse.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CakePHP 5.0 er landet - masser forbedringer til udvikleroplevelsen\" \/>\n<meta property=\"og:description\" content=\"En ny version af CakePHP er landet - f\u00e5 overblikket over de nyes tiltag, som blandt andet inkluderer en forbedret udvikleroplevelse.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/\" \/>\n<meta property=\"og:site_name\" content=\"Webhotelsoversigts bloggen\" \/>\n<meta property=\"article:author\" content=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/09\/profile-pic.png\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-07T05:18:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-01T05:29:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/cakephp.png\" \/>\n\t<meta property=\"og:image:width\" content=\"870\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Christian Larsen\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet af\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christian Larsen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimeret l\u00e6setid\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutter\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CakePHP 5.0 er landet - masser forbedringer til udvikleroplevelsen","description":"En ny version af CakePHP er landet - f\u00e5 overblikket over de nyes tiltag, som blandt andet inkluderer en forbedret udvikleroplevelse.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/","og_locale":"da_DK","og_type":"article","og_title":"CakePHP 5.0 er landet - masser forbedringer til udvikleroplevelsen","og_description":"En ny version af CakePHP er landet - f\u00e5 overblikket over de nyes tiltag, som blandt andet inkluderer en forbedret udvikleroplevelse.","og_url":"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/","og_site_name":"Webhotelsoversigts bloggen","article_author":"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/09\/profile-pic.png","article_published_time":"2023-10-07T05:18:00+00:00","article_modified_time":"2023-10-01T05:29:16+00:00","og_image":[{"width":870,"height":500,"url":"https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/10\/cakephp.png","type":"image\/png"}],"author":"Christian Larsen","twitter_misc":{"Skrevet af":"Christian Larsen","Estimeret l\u00e6setid":"3 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/","url":"https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/","name":"CakePHP 5.0 er landet - masser forbedringer til udvikleroplevelsen","isPartOf":{"@id":"https:\/\/webhotelsoversigt.dk\/blog\/#website"},"datePublished":"2023-10-07T05:18:00+00:00","dateModified":"2023-10-01T05:29:16+00:00","author":{"@id":"https:\/\/webhotelsoversigt.dk\/blog\/#\/schema\/person\/d6a3b29da4f3f598846f30ce30a61429"},"description":"En ny version af CakePHP er landet - f\u00e5 overblikket over de nyes tiltag, som blandt andet inkluderer en forbedret udvikleroplevelse.","inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webhotelsoversigt.dk\/blog\/cakephp-5-0-er-landet-og-med-en-masse-forbedringer-til-udvikleroplevelsen\/"]}]},{"@type":"WebSite","@id":"https:\/\/webhotelsoversigt.dk\/blog\/#website","url":"https:\/\/webhotelsoversigt.dk\/blog\/","name":"Webhotelsoversigts bloggen","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webhotelsoversigt.dk\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"da-DK"},{"@type":"Person","@id":"https:\/\/webhotelsoversigt.dk\/blog\/#\/schema\/person\/d6a3b29da4f3f598846f30ce30a61429","name":"Christian Larsen","image":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/webhotelsoversigt.dk\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3eecdc8d24d61e7ff681dbdd8fc1bb53a6e305bad7c4071581455a13ae6b3e98?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3eecdc8d24d61e7ff681dbdd8fc1bb53a6e305bad7c4071581455a13ae6b3e98?s=96&d=mm&r=g","caption":"Christian Larsen"},"description":"Her kan du l\u00e6se hvem jeg er, og hvorfor det er jeg deler mine erfaringer med de forskellige webhoteller her p\u00e5 siden. Mine erfaringer Jeg lavede min f\u00f8rste hjemmeside tilbage i 2009, hvilket giver mig 10+ \u00e5rs erfaringer med webhoteller og webhosting af hjemmesider. Det er den erfaringer jeg fors\u00f8ger at give videre her. Min erfaring bygger dog ikke kun p\u00e5 webhoteller, men jeg er ogs\u00e5 s\u00e6rdeles kyndig n\u00e5r det kommer til programmering. Jeg har tilbage i min HTX haft et fag der hedder kommunikation og multimedier, som jeg afsluttet med et flot 11 tal. Opgaven bestod dengang i at lave en webshop. Den historie begynder alts\u00e5 n\u00e6sten 10\u00e5r f\u00f8r jeg havde min f\u00f8rste dedikeret hjemmeside, og kan derfor alts\u00e5 samlet komme p\u00e5 p\u00e5 20+ \u00e5rs erfaring med hjemmesider og webhosting tilsammen. Derfor deler jeg min erfaring N\u00e5r man har en hjemmeside, og specielt en man gerne vil have tjener nogle penge. S\u00e5 er det forholdsvis vigtigt, at den er online hele tiden. Hvis der er huller i onlinetiden, s\u00e5 betyder det ikke kun nedgang i oms\u00e6tningen, men det kan ogs\u00e5 betyde nedgangs i s\u00f8geresultaterne i google, og irriteret brugere som ikke \u00f8nsker at komme tilbage. Tilbage i 2009, da der ikke var ret meget erfaringsdeling omkring webhosting k\u00f8bte jeg et webhotel, som var dyrt fordi jeg s\u00e5 var sikker p\u00e5 at oppetiden var god, s\u00e5dan hang det desv\u00e6rre ikke sammen. Herefter var jeg p\u00e5 en rejse igennem forskellige webhoteller for at finde det med de bedste oppetider og svartider. Den erfaring jeg gjorde mig i denne rejse fik mig til at lave hjemmesiden her. Christian Larsen Privat Christian er noget af n\u00f8rd n\u00e5r det kommer til de ting han br\u00e6nder for. S\u00e6rligt hjemmesider og r\u00e5dgivning tager mange af hans private timer. N\u00e5r computeren er slukket, s\u00e5 g\u00e5r der mange timer sammen med hans sk\u00f8nne b\u00f8rn, dem har han 2 af. Desuden bruger han meget tid p\u00e5 rejser og generelt p\u00e5 at nyde livet sammen med hans kone og hunden. Kontakt til Christian Larsen Email: info@webhotelsoversigt.dk","sameAs":["https:\/\/webhotelsoversigt.dk\/blog\/wp-content\/uploads\/2023\/09\/profile-pic.png"],"url":"https:\/\/webhotelsoversigt.dk\/blog\/author\/tim-petersson\/"}]}},"_links":{"self":[{"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/posts\/720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/comments?post=720"}],"version-history":[{"count":1,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/posts\/720\/revisions"}],"predecessor-version":[{"id":724,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/posts\/720\/revisions\/724"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/media\/725"}],"wp:attachment":[{"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/media?parent=720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/categories?post=720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhotelsoversigt.dk\/blog\/wp-json\/wp\/v2\/tags?post=720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}