{"id":185,"date":"2023-02-03T09:42:00","date_gmt":"2023-02-03T12:42:00","guid":{"rendered":"https:\/\/marcosmarcolin.com.br\/dev\/?p=185"},"modified":"2023-03-06T09:01:19","modified_gmt":"2023-03-06T12:01:19","slug":"atualizacoes-desenvolvimento-php-8-3","status":"publish","type":"post","link":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/","title":{"rendered":"PHP Core Roundup #9"},"content":{"rendered":"\n<p>Conforme o <a href=\"https:\/\/opencollective.com\/phpfoundation\/updates\/php-core-roundup-9\" target=\"_blank\" rel=\"noreferrer noopener\">Core Roundup #9<\/a>, essas s\u00e3o algumas melhorias e RFCs para a vers\u00e3o 8.3, destaques do m\u00eas de Janeiro:<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>RFC em vota\u00e7\u00e3o:<\/strong> <em><a href=\"https:\/\/wiki.php.net\/rfc\/readonly_amendments\" target=\"_blank\" rel=\"noreferrer noopener\">Readonly amendments<\/a><\/em><\/p>\n\n\n\n<p>A sugest\u00e3o de mudan\u00e7a \u00e9 para classes normais poderem estender(herdar) de classes <em>Readonly<\/em>(somente leitura). Hoje, \u00e9 proibido e lan\u00e7a um &#8216;<em>Fatal error<\/em>&#8216;. Tamb\u00e9m, \u00e9 permitir a reinicializa\u00e7\u00e3o de propriedades <em>Readonly <\/em>durante a clonagem.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>RFC implementada:<\/strong> <em><a href=\"https:\/\/wiki.php.net\/rfc\/randomizer_additions\" target=\"_blank\" rel=\"noreferrer noopener\">Randomizer Additions<\/a><\/em><\/p>\n\n\n\n<p>Melhoria na nova extens\u00e3o &#8216;<em>Random<\/em>&#8216; do PHP, criada para padronizar a gera\u00e7\u00e3o de n\u00fameros aleat\u00f3rios\/rand\u00f4micos. Esta RFC prop\u00f5e adicionar os m\u00e9todos <em>getBytesFromString()<\/em> e <em>getFloat()\/nextFloat()<\/em>, para gera\u00e7\u00e3o de string e ponto flutuante(<em>float<\/em>) aleat\u00f3rio. Estas opera\u00e7\u00f5es geralmente s\u00e3o aplicadas na <em>userland<\/em>, com uma certa dificuldade.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>RFC em discuss\u00e3o:<\/strong> <em><a href=\"https:\/\/wiki.php.net\/rfc\/saner-inc-dec-operators\" target=\"_blank\" rel=\"noreferrer noopener\">Path to Saner Increment\/Decrement operators<\/a><\/em><\/p>\n\n\n\n<p>Altera\u00e7\u00e3o no operador de incremento(<strong>$v++<\/strong>) e decremento(<strong>$v&#8211;<\/strong>), para padronizar a sa\u00edda quando utilizado com tipo <em>int<\/em> ou <em>float<\/em>. Muitas vezes, a sa\u00edda \u00e9 inesperada.<\/p>\n\n\n\n<p>A ideia \u00e9 para <strong>$v++<\/strong> ser igual&nbsp;<strong>$v += 1<\/strong> , e <strong>$v&#8211; <\/strong>\u00e0 <strong>$v -= 1<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>RFC em discuss\u00e3o:<\/strong> <em><a href=\"https:\/\/wiki.php.net\/rfc\/saner-array-sum-product\" target=\"_blank\" rel=\"noreferrer noopener\">Saner array_(sum|product)()<\/a><\/em><\/p>\n\n\n\n<p>Aqui, \u00e9 para gerar um aviso quando a utiliza\u00e7\u00e3o de <em>array_sum()<\/em> e <em>array_product()<\/em> tiverem um <em>array<\/em> com tipos incompat\u00edveis. Isso ir\u00e1 gerar incompatibilidade com vers\u00f5es anteriores.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>RFC recusada:<\/strong> <em><a href=\"https:\/\/wiki.php.net\/rfc\/asymmetric-visibility\" target=\"_blank\" rel=\"noreferrer noopener\">Asymmetric Visibility<\/a><\/em><\/p>\n\n\n\n<p>Nesta, teria uma nova sintaxe para declara\u00e7\u00e3o do encapsulamento de propriedades de uma classe, ex:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Foo\n{\n  public private(set) string $bar;\n}<\/code><\/pre>\n\n\n\n<p>No trecho acima, a opera\u00e7\u00e3o <em>getBar()<\/em> seria p\u00fablica, enquanto <em>setBar() <\/em>privada.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Al\u00e9m destas e outras RFCs, foram implementadas diversas melhorias de desempenho, principalmente nas extens\u00f5es <em>mbstring<\/em> e <em>random<\/em>.<\/p>\n\n\n\n<p>Pude acompanhar diversos PRs de dezembro de 2022 para c\u00e1 e \u00e9 percept\u00edvel a evolu\u00e7\u00e3o e melhorias que a linguagem vem recebendo, a&nbsp;<a href=\"https:\/\/www.linkedin.com\/company\/phpfoundation\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP Foundation<\/a>&nbsp;deu um &#8216;g\u00e1s&#8217; para a linguagem continuar evoluindo. \ud83d\ude42<\/p>\n\n\n\n<p><a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=php&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7027019057702780928\">#php<\/a><a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=php7&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7027019057702780928\"> #php7 <\/a><a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=php8&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7027019057702780928\">#php8<\/a><a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=phpfoundation&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7027019057702780928\"> #phpfoundation <\/a><a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=phpdeveloper&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7027019057702780928\">#phpdeveloper<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Resumo de algumas discuss\u00f5es(RFCs) em destaques do M\u00eas de Janeiro de 2023, para o PHP 8.3.<\/p>\n","protected":false},"author":1,"featured_media":205,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[11,31],"tags":[15,4,19],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP Core Roundup #9 - Blog do Marcolin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP Core Roundup #9 - Blog do Marcolin\" \/>\n<meta property=\"og:description\" content=\"Resumo de algumas discuss\u00f5es(RFCs) em destaques do M\u00eas de Janeiro de 2023, para o PHP 8.3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog do Marcolin\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-03T12:42:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-06T12:01:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2023\/02\/php_core_9.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marcos Marcolin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marcolindev\" \/>\n<meta name=\"twitter:site\" content=\"@marcolindev\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcos Marcolin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\"},\"author\":{\"name\":\"Marcos Marcolin\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc\"},\"headline\":\"PHP Core Roundup #9\",\"datePublished\":\"2023-02-03T12:42:00+00:00\",\"dateModified\":\"2023-03-06T12:01:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\"},\"wordCount\":309,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc\"},\"keywords\":[\"core\",\"php\",\"phpdeveloper\"],\"articleSection\":[\"PHP\",\"PHP Foundation\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\",\"url\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\",\"name\":\"PHP Core Roundup #9 - Blog do Marcolin\",\"isPartOf\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#website\"},\"datePublished\":\"2023-02-03T12:42:00+00:00\",\"dateModified\":\"2023-03-06T12:01:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/marcosmarcolin.com.br\/dev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP Core Roundup #9\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#website\",\"url\":\"https:\/\/marcosmarcolin.com.br\/dev\/\",\"name\":\"Blog do Marcolin\",\"description\":\"PHP &amp; DevOps\",\"publisher\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/marcosmarcolin.com.br\/dev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc\",\"name\":\"Marcos Marcolin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2022\/11\/20190113_104622-scaled.jpg\",\"contentUrl\":\"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2022\/11\/20190113_104622-scaled.jpg\",\"width\":1920,\"height\":2560,\"caption\":\"Marcos Marcolin\"},\"logo\":{\"@id\":\"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/image\/\"},\"description\":\"Desenvolvedor PHP.\",\"sameAs\":[\"http:\/\/marcosmarcolin.com.br\/dev\",\"https:\/\/www.instagram.com\/marcosmarcolin\/\",\"https:\/\/www.linkedin.com\/in\/marcosmarcolin\/\",\"https:\/\/twitter.com\/marcolindev\"],\"url\":\"https:\/\/marcosmarcolin.com.br\/dev\/author\/marcolindev\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP Core Roundup #9 - Blog do Marcolin","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:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/","og_locale":"pt_BR","og_type":"article","og_title":"PHP Core Roundup #9 - Blog do Marcolin","og_description":"Resumo de algumas discuss\u00f5es(RFCs) em destaques do M\u00eas de Janeiro de 2023, para o PHP 8.3.","og_url":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/","og_site_name":"Blog do Marcolin","article_published_time":"2023-02-03T12:42:00+00:00","article_modified_time":"2023-03-06T12:01:19+00:00","og_image":[{"width":1500,"height":630,"url":"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2023\/02\/php_core_9.png","type":"image\/png"}],"author":"Marcos Marcolin","twitter_card":"summary_large_image","twitter_creator":"@marcolindev","twitter_site":"@marcolindev","twitter_misc":{"Escrito por":"Marcos Marcolin","Est. tempo de leitura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#article","isPartOf":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/"},"author":{"name":"Marcos Marcolin","@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc"},"headline":"PHP Core Roundup #9","datePublished":"2023-02-03T12:42:00+00:00","dateModified":"2023-03-06T12:01:19+00:00","mainEntityOfPage":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/"},"wordCount":309,"commentCount":0,"publisher":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc"},"keywords":["core","php","phpdeveloper"],"articleSection":["PHP","PHP Foundation"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/","url":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/","name":"PHP Core Roundup #9 - Blog do Marcolin","isPartOf":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/#website"},"datePublished":"2023-02-03T12:42:00+00:00","dateModified":"2023-03-06T12:01:19+00:00","breadcrumb":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/marcosmarcolin.com.br\/dev\/atualizacoes-desenvolvimento-php-8-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/marcosmarcolin.com.br\/dev\/"},{"@type":"ListItem","position":2,"name":"PHP Core Roundup #9"}]},{"@type":"WebSite","@id":"https:\/\/marcosmarcolin.com.br\/dev\/#website","url":"https:\/\/marcosmarcolin.com.br\/dev\/","name":"Blog do Marcolin","description":"PHP &amp; DevOps","publisher":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/marcosmarcolin.com.br\/dev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/6dc65ed86bf2212dfa12c6fcfb106afc","name":"Marcos Marcolin","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/image\/","url":"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2022\/11\/20190113_104622-scaled.jpg","contentUrl":"https:\/\/marcosmarcolin.com.br\/dev\/wp-content\/uploads\/2022\/11\/20190113_104622-scaled.jpg","width":1920,"height":2560,"caption":"Marcos Marcolin"},"logo":{"@id":"https:\/\/marcosmarcolin.com.br\/dev\/#\/schema\/person\/image\/"},"description":"Desenvolvedor PHP.","sameAs":["http:\/\/marcosmarcolin.com.br\/dev","https:\/\/www.instagram.com\/marcosmarcolin\/","https:\/\/www.linkedin.com\/in\/marcosmarcolin\/","https:\/\/twitter.com\/marcolindev"],"url":"https:\/\/marcosmarcolin.com.br\/dev\/author\/marcolindev\/"}]}},"_links":{"self":[{"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/posts\/185"}],"collection":[{"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/comments?post=185"}],"version-history":[{"count":3,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/posts\/185\/revisions"}],"predecessor-version":[{"id":206,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/posts\/185\/revisions\/206"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/media\/205"}],"wp:attachment":[{"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/media?parent=185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/categories?post=185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcosmarcolin.com.br\/dev\/wp-json\/wp\/v2\/tags?post=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}