<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Cledilson Nascimento</title>
    <description>The latest articles on Forem by Cledilson Nascimento (@cledilsonweb).</description>
    <link>https://forem.com/cledilsonweb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F414073%2F18145510-d0bb-407d-9702-3b7f01070c7c.png</url>
      <title>Forem: Cledilson Nascimento</title>
      <link>https://forem.com/cledilsonweb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cledilsonweb"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Tue, 29 Apr 2025 14:44:11 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/-3188</link>
      <guid>https://forem.com/cledilsonweb/-3188</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/inspector/create-ai-agents-in-php-powered-by-google-gemini-llms-3kj6" class="crayons-story__hidden-navigation-link"&gt;Create AI Agents In PHP Powered By Google Gemini LLMs&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/inspector"&gt;
            &lt;img alt="Inspector.dev logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F837%2F41bffde2-11a0-4e30-904e-1f09ab6d2a75.png" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/ilvalerione" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F178561%2F30369dc7-f030-4cf3-8855-7af9f5143f8c.png" alt="ilvalerione profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ilvalerione" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Valerio
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Valerio
                
              
              &lt;div id="story-author-preview-content-2445855" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ilvalerione" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F178561%2F30369dc7-f030-4cf3-8855-7af9f5143f8c.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Valerio&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/inspector" class="crayons-story__secondary fw-medium"&gt;Inspector.dev&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/inspector/create-ai-agents-in-php-powered-by-google-gemini-llms-3kj6" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 29 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/inspector/create-ai-agents-in-php-powered-by-google-gemini-llms-3kj6" id="article-link-2445855"&gt;
          Create AI Agents In PHP Powered By Google Gemini LLMs
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/php"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;php&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/inspector/create-ai-agents-in-php-powered-by-google-gemini-llms-3kj6" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/inspector/create-ai-agents-in-php-powered-by-google-gemini-llms-3kj6#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>php</category>
      <category>ai</category>
    </item>
    <item>
      <title>Validando dados no PHP com Lontra Validator</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Thu, 28 Apr 2022 00:12:06 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/validando-dados-no-php-e-laminaszendou-nao-lontra-validator-14l9</link>
      <guid>https://forem.com/cledilsonweb/validando-dados-no-php-e-laminaszendou-nao-lontra-validator-14l9</guid>
      <description>&lt;p&gt;Apesar do Zend não estar mais tão popular nos últimos anos, principalmente depois que foi para as mãos da Linux Fundation, agora chamado de Laminas, eu continuo trabalhando com ele, pois ao meu ver é um framework muito sólido e versátil, fácil de identificar erros durante o desenvolvimento e baixo acoplamento.&lt;/p&gt;

&lt;p&gt;O Laminas é (conforme o significado literal do nome) dividido em pequenas partes, cada coisa tem seu pacote, como forms, banco de dados, MVC, validadores, filtros, etc. &lt;/p&gt;

&lt;p&gt;Pra ser mais direto ao assunto do artigo, muitas vezes precisei de algumas validações que não estavam prontas e disponíveis no pacote laminas-validator, então resolvi desenvolver alguns:&lt;/p&gt;

&lt;p&gt;ArrayRecordExists - Check if values in array exists on database&lt;br&gt;
DateBetween - Checks whether the date is between values entered.&lt;br&gt;
DateGreaterThan - Checks if date is greater&lt;br&gt;
DateLessThan - Checks if date is less&lt;br&gt;
EndsWith - If text ends with a value&lt;br&gt;
IsArray - If value is a valid array&lt;br&gt;
Password - Checks whether the entered value is a valid password with the options uppercase, lowercase, number, special characters.&lt;br&gt;
StartsWith - If text starts with a value&lt;br&gt;
WordCount - Validate the number of words in a string&lt;/p&gt;

&lt;p&gt;Essas validações foram feitas para serem integradas ao laminas-validator e laminas-inputfilter, mas funcionam também para abordagens Orientadas a Objetos em projetos em PHP puro ou em outros frameworks, apesar de não achar tão interessante nesses casos, mas espero que também te ajude.&lt;/p&gt;

&lt;p&gt;A instalação via Composer é bem simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer require cledilsonweb/lontra-validator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pra usar também é bem simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$inputFilter&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'input_name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'required'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'filters'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// your filters...,&lt;/span&gt;
        &lt;span class="s1"&gt;'validators'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;DateBetween&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;
                &lt;span class="s1"&gt;'options'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                    &lt;span class="s1"&gt;'max'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'2020-10-10'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                    &lt;span class="s1"&gt;'min'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'2020-05-05'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                    &lt;span class="s1"&gt;'format'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Y-m-d'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                    &lt;span class="s1"&gt;'inclusive'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
                &lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou em casos em que você não use o Laminas como framework no seu projeto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$validator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;DateBetween&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'max'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'2020-10-10'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'min'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'2020-05-05'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'format'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Y-m-d'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'inclusive'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$validator&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;isValid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'2020-06-06'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conheça o Laminas, agora na Linux Fundation
&lt;/h2&gt;

&lt;p&gt;Como eu disse, você pode usar apenas partes do Laminas em seu projeto em combinação com outros frameworks também. Inclusive o InputFilter que é usado para validar dados, principalmente de formulários:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.laminas.dev/laminas-inputfilter/intro/"&gt;https://docs.laminas.dev/laminas-inputfilter/intro/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Então...
&lt;/h2&gt;

&lt;p&gt;Tem sido uma mão na roda em meus projetos, tanto na empresa como em projetos pessoais, e espero que ajude você também. Caso tenha sugestões, pode enviar pelo projeto no Github ou dúvidas por aqui mesmo. Abraço!&lt;/p&gt;

&lt;h3&gt;
  
  
  Link do projeto:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/cledilsonweb/lontra-validator"&gt;https://github.com/cledilsonweb/lontra-validator&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>php</category>
      <category>laminas</category>
      <category>zend</category>
    </item>
    <item>
      <title>JetBrains Mono: Nossos olhos agradecem - Fonte para VSCode e Outros</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Wed, 16 Feb 2022 00:40:16 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/jetbrains-mono-nossos-olhos-agradecem-5bpn</link>
      <guid>https://forem.com/cledilsonweb/jetbrains-mono-nossos-olhos-agradecem-5bpn</guid>
      <description>&lt;p&gt;Nós programadores passamos muito tempo(geralmente) em frente ao computador, trabalhando. Muitas vezes isso causa cansaço e desconforto devido a luz da tela e o fato de olharmos muito tempo para um ponto próximo aos nossos olhos, nas referências eu deixo um artigo sobre esse assunto.&lt;/p&gt;

&lt;p&gt;Acredito que devamos procurar ao máximo melhorar nosso conforto, tanto por uma questão de conforto mesmo como para cuidar da saúde. Entre várias providências que podemos tomar para cuidar dos nossos olhos, uma delas é o uso de fontes legíveis. Por um acaso encontrei uma fonte que me ajuda, e espero que ajude você, a "fazer menos" esforço ao olhar pra tela. O nome dela é JetBrains Mono, e como dá pra perceber ela foi criada e é disponibilizada pela JetBrains, empresa grande na área de desenvolvimento.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev1jy77rjbyhpe5h23b5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev1jy77rjbyhpe5h23b5.png" alt="Image description" width="535" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como qualquer outra fonte, basta fazer o download e instalar no sistema operacional e configurar em sua IDE ou editor de texto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jetbrains.com/pt-br/lp/mono/"&gt;https://www.jetbrains.com/pt-br/lp/mono/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você usa o Visual Studio Code, segue a dica rápida pra instalação:&lt;/p&gt;

&lt;p&gt;Faça o download que passei anteriormente, descompacte o arquivo e clique com botão direito nos arquivos de fonte encontrados na pasta "fonts\ttf" e instale. No Linux vai depender da sua distribuição, mas geralmente há uma opção de instalar fonte ou abrir com um software que faça a instalação, no caso do Windows:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hwfsws4qttus0y8tmwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hwfsws4qttus0y8tmwl.png" alt="Image description" width="614" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois disso, no VSCode, em Arquivo &amp;gt; Preferências pesquise por "font family" e encontrará o campo com a fonte atual do editor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9pmubitlqwqhossb28u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9pmubitlqwqhossb28u.png" alt="Image description" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basta preencher com o texto 'JetBrains Mono' (com aspas simples mesmo). Se quiser pode deixar os nomes das fontes que já tinham depois dele. Depois do processo realizado, feche e abra novamente seu editor e seja feliz!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falm3m4d16m8p6jzzdf7u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falm3m4d16m8p6jzzdf7u.png" alt="Image description" width="800" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  É isso!
&lt;/h2&gt;

&lt;p&gt;Espero que mais recursos como esse sejam lançados pra termos cada vez mais eficiência e conforto em nossos dias árduos de trabalho duro na codificação. Conhece alguma outra fonte legal ou algum outro recurso que nos ajuda no dia-a-dia? Comente!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.jetbrains.com/pt-br/lp/mono/"&gt;https://www.jetbrains.com/pt-br/lp/mono/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.terra.com.br/noticias/tecnologia/como-diminuir-o-cansaco-visual-por-uso-do-computador,870be6fdac684882c928b656b0560418dtw751md.html"&gt;https://www.terra.com.br/noticias/tecnologia/como-diminuir-o-cansaco-visual-por-uso-do-computador,870be6fdac684882c928b656b0560418dtw751md.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dica</category>
      <category>braziliandevs</category>
      <category>fonte</category>
      <category>saude</category>
    </item>
    <item>
      <title>Linux travado por falta de espaço: Uma solução</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Fri, 29 Jan 2021 19:41:27 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/linux-travado-por-falta-de-espaco-uma-solucao-442e</link>
      <guid>https://forem.com/cledilsonweb/linux-travado-por-falta-de-espaco-uma-solucao-442e</guid>
      <description>&lt;p&gt;Hoje vou passar pra você uma dica simples que pode te ajudar como me ajudou. Sabe aqueles avisos que seu SO dá quando o espaço em disco está ficando cheio? Pois é. Meu Linux Mint travou, eu tinha 95GB só para ele, não sei como encheu e também não consegui acessar a interface do Cinnamon para remover alguns programas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uma opção
&lt;/h3&gt;

&lt;p&gt;Rodando pela internet, depois de muito trabalho eu encontrei uma possível solução no StackExchange. Pelo que parece, o Linux reserva parte do disco, não sei qual o motivo, cerca 5% pra ele. Então, a proposta é apagar alguns arquivos e também diminuir essa reserva pra 1% só para poder acessar seu Linux normalmente e poder remover alguns programas, apagar alguns logs, ou o que mais você puder apagar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resolvendo(Ou tentando...)
&lt;/h3&gt;

&lt;p&gt;Não sei como sua distro vai se comportar, se aparecer na tela de login da interface, pressione "ctrl + alt + F1", o F1 pode ser substituído até o F6 caso o F1 não abra, depois faça o login. Com a sessão aberta no terminal use o comando &lt;code&gt;df -h&lt;/code&gt; para confirmar seu espaço livre. Observe a coluna "Montado em", esta indica o que é usado em cada partição. O sistema fica instalado onde tem apenas uma barra "/" e o nome da partição é a primeira coluna, algo como "/dev/sda8", que é o meu caso. Pra mim apareceu que tinha 4GB livre, mas para o sistema constavam 0% livres, foi o que mais achei estranho.&lt;br&gt;
Então execute o comando a seguir, com usuário &lt;code&gt;root&lt;/code&gt; para diminuir o espaço reservado(substitua /dev/sda8 por sua partição raiz do sistema) e caso sua distro seja derivada do Debian/Ubuntu, como o Linux Mint, você vai precisar usar o comando "sudo" antes dos comandos deste tutorial para poder dar permissão de administrador.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tune2fs -m1  /dev/sda8&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo tune2fs -m1  /dev/sda8&lt;/code&gt; para usuários de Debian e derivados&lt;/p&gt;

&lt;p&gt;Agora tente acessar sua interface gráfica e apague o que puder na raiz do seu sistema, principalmente programas e arquivos temporários, ou, caso você use a mesma partição para o sistema e os arquivos pessoais, apagar vídeos e músicas também vai te ajudar. Se não sabe o que pode apagar, apenas desinstale programas que não são do sistema. Após remover uma boa quantidade de arquivos/programas, execute novamente no &lt;code&gt;df -h&lt;/code&gt; e veja se já liberou pelo menos uns 6% a 8% da partição raiz(/). Estando tudo certo, volte a configuração de reserva para um tamanho maior, até porque não sei para que serve :D&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tune2fs -m5  /dev/sda8&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  E então...
&lt;/h3&gt;

&lt;p&gt;Depois de concluir, eu percebi que o Timeshift estava tentando fazer backup mesmo sem espaço suficiente para o backup completo e acabou ocasionando esse problema. Então é isso. Espero que tenha lhe ajudado a resolver a curto prazo o seu problema assim como resolveu pra mim, agora posso voltar a escovar bytes. Abraço!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unix.stackexchange.com/questions/34140/tell-fs-to-free-space-from-deleted-files-now"&gt;https://unix.stackexchange.com/questions/34140/tell-fs-to-free-space-from-deleted-files-now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>linux</category>
      <category>mint</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>PHP: Importando e assinando digitalmente arquivos PDF</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Sat, 08 Aug 2020 02:14:42 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/php-importando-e-assinando-digitalmente-arquivos-pdf-24d5</link>
      <guid>https://forem.com/cledilsonweb/php-importando-e-assinando-digitalmente-arquivos-pdf-24d5</guid>
      <description>&lt;p&gt;Manipular arquivos PDF não é uma tarefa simples e muitas vezes precisamos apenas realizar uma pequena manipulação nestes arquivos, ou seja, será apenas uma parte muito pequena do nosso sistema, tornando inviável o desenvolvimento dessas funcionalidades "do zero".&lt;/p&gt;

&lt;p&gt;Para PHP temos várias bibliotecas disponíveis e gratuitas, entre elas a TCPDF, que pra mim é uma das melhores, mas, falta nela a opção de importação. Com uma boa pesquisada na Internet encontrei o FPDI, que tem a função de importar PDFs em bibliotecas já existentes, como a já citada TCPDF. O funcionamento e uso são simples: o FPDI estende a classe TCPDF e acrescenta a funcionalidade de importação. Então, neste artigo vamos usar essas duas bibliotecas. Durante o desenvolvimento de um projeto(no qual trabalho enquanto escrevo este artigo) tive um problema durante a assinatura do arquivo usando as bibliotecas:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Warning:  openssl_pkcs7_sign(): error getting private key in...&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Depois de muito pesquisar, recorri à comunidade do PHPBA, onde o Marcio Albuquerque(&lt;a href="https://twitter.com/mlalbuquerque"&gt;@mlalbuquerque&lt;/a&gt;) me ajudou e o problema foi resolvido. Se você não participa de uma comunidade, aconselho que procure a comunidade da sua região, é muito bom. Voltando, a ideia é que os arquivos do certificado devem ser passados como &lt;code&gt;stream&lt;/code&gt;, necessitando de &lt;code&gt;file://&lt;/code&gt; antes do endereço do arquivo para funcionar corretamente. Então, fique atento ao código para não deixar esse detalhe passar. &lt;/p&gt;

&lt;p&gt;A instalação via composer, como sempre é bem simples: &lt;code&gt;composer require setasign/fpdi&lt;/code&gt; ou para instalação manual, consulte a documentação oficial: &lt;a href="https://github.com/Setasign/FPDI"&gt;https://github.com/Setasign/FPDI&lt;/a&gt;. Instale também o TCPDF: &lt;code&gt;composer require tecnickcom/tcpdf&lt;/code&gt;. E veja como fica o código com uso simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;//Endereço do arquivo do certificado&lt;/span&gt;
&lt;span class="c1"&gt;//Obs.: Tentei usar o certificado no formato PFX e não funcionou&lt;/span&gt;
&lt;span class="c1"&gt;//Para converter use o comando no Prompt do Windows ou Terminal do Linux:&lt;/span&gt;
&lt;span class="c1"&gt;//openssl pkcs12 -in certificado.pfx -out tcpdf.crt -nodes&lt;/span&gt;
&lt;span class="nv"&gt;$cert&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'C:\\tcpdf.crt'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;//Informações da assinatura - Preencha com os seus dados&lt;/span&gt;
&lt;span class="nv"&gt;$info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
   &lt;span class="s1"&gt;'Name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Nome'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'Location'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Localidade'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'Reason'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Descreva o motivo da assinatura'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'ContactInfo'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Dados de contato'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$pdf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Fpdi&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;//Configura a assinatura. Para saber mais sobre os parâmetros&lt;/span&gt;
&lt;span class="c1"&gt;//consulte a documentação do TCPDF, exemplo 52.&lt;/span&gt;
&lt;span class="c1"&gt;//Não esqueça de mudar 'senha' para a senha do seu certificado&lt;/span&gt;
&lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setSignature&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'file://'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$cert&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'file://'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;realpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$cert&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'senha'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$info&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Importa uma página&lt;/span&gt;
&lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;AddPage&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setSourceFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;documento.pdf"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$tplId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;importPage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;useTemplate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$tplId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//Importa nas medidas originais&lt;/span&gt;

&lt;span class="c1"&gt;//Manda o PDF pra download&lt;/span&gt;
&lt;span class="nv"&gt;$pdf&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'teste.pdf'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'D'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O código acima importa apenas a primeira página, caso necessite importar mais de uma página basta fazer um loop. Então é isso, agradeço por ter lido, caso tenha dúvida deixe seu comentário. Abraço!&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>php</category>
      <category>pdf</category>
      <category>sign</category>
    </item>
    <item>
      <title>Laminas: O novo Zend Framework</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Thu, 23 Jul 2020 19:17:48 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/laminas-o-novo-zend-framework-jgn</link>
      <guid>https://forem.com/cledilsonweb/laminas-o-novo-zend-framework-jgn</guid>
      <description>&lt;p&gt;O Zend Framework foi um dos mais conhecidos e usados frameworks para PHP. Mas, como no mundo da tecnologia as coisas mudam muito, chegou uma mudança muito importante para o projeto. O assunto do artigo não é novidade, mas trago um breve resumo.&lt;/p&gt;

&lt;p&gt;O Zend Framework, ou ZF para os íntimos, é um framework(conjunto de ferramentas) para PHP, muito robusto e ajuda muito na organização do projeto, além, é claro, de fornecer muitas ferramentas para o desenvolvimento de sistemas em PHP, como abstração de SQL, formulários, MVC, API, rotas, validadores, filtros e mais um monte de coisas.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Laminas Project
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://www.roguewave.com/"&gt;Rogue Wave Software&lt;/a&gt;, empresa que mantinha o desenvolvimento do Zend Framework ativo, foi comprada pela &lt;a href="https://www.perforce.com/"&gt;Perforce Software&lt;/a&gt;, em janeiro de 2019, que logo decidiu rever seu portfólio e resolveu não mais manter o desenvolvimento da ferramenta. Foi aí então que nasceu o Laminas Project. A Linux Fundation assumiu o projeto, que continua sendo software-livre, só que mantido por uma empresa focada e especializada no assunto. Foram necessárias algumas mudanças, entre elas o nome do projeto e seus subprojetos, já que eram marcas registradas. Receberam os nomes de Laminas: sendo o pacote principal; Mezzio: Antigo Zend Expressive para sistemas middleware; API Tools: o antigo Apigility para criação de APIs.&lt;br&gt;
O fato de uma instituição de credibilidade como a Linux Fundation estar agora cuidando do projeto trás uma tranquilidade, principalmente para quem já conhece como os projetos são conduzidos por ela.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como ficou
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s-NAqaGf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajoebs01zjf74hyiduyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s-NAqaGf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajoebs01zjf74hyiduyz.png" alt="Pacotes com Namespace atualizados" width="527" height="223"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Pacotes com Namespace atualizados&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Além da mudança dos nomes, também foi necessário, é claro, mudar também muito material, como a documentação que já foi toda(ou quase) atualizada e já está disponível no site oficial(&lt;a href="https://getlaminas.org/"&gt;https://getlaminas.org/&lt;/a&gt;). Também, os pacotes já foram atualizados com o novo nome assumindo agora o namespace “Laminas”. Ainda não tivemos atualizações de funcionalidades significativas, mas o projeto está andando em um ritmo muito bom e já tivemos atualizações de muitos pacotes. Caso queira acompanhar, sugiro que siga o Twitter do Laminas: &lt;a href="https://twitter.com/getlaminas"&gt;https://twitter.com/getlaminas&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O Futuro
&lt;/h2&gt;

&lt;p&gt;Acredito que, na Linux Fundation, o futuro do Laminas Project seja promissor e garantido por uns bons anos, estando mais próximo da comunidade PHP e dos desenvolvedores que apostam na ferramenta. É provável que, ao menos por enquanto, o desenvolvimento e evolução do Laminas não seja tão rápida como era com o Zend Framework, mas certamente teremos um projeto firme e consistente para termos confiança.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;Laminas Officially Joins the Linux Foundation&lt;br&gt;
&lt;a href="https://getlaminas.org/blog/2020-04-22-linux-foundation-launch.html"&gt;https://getlaminas.org/blog/2020-04-22-linux-foundation-launch.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Evolution of Zend Framework to the Laminas Project&lt;br&gt;
&lt;a href="https://www.zend.com/blog/evolution-zend-framework-laminas-project"&gt;https://www.zend.com/blog/evolution-zend-framework-laminas-project&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>zend</category>
      <category>laminas</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>O fim do suporte da Microsoft ao PHP</title>
      <dc:creator>Cledilson Nascimento</dc:creator>
      <pubDate>Sun, 19 Jul 2020 02:11:55 +0000</pubDate>
      <link>https://forem.com/cledilsonweb/o-fim-do-suporte-da-microsoft-ao-php-4d7c</link>
      <guid>https://forem.com/cledilsonweb/o-fim-do-suporte-da-microsoft-ao-php-4d7c</guid>
      <description>&lt;p&gt;O título do artigo pode parecer pretensioso ou talvez assustador para programadores novatos, mas vamos apenas refletir um pouco sobre a atual situação do PHP neste contexto.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“No entanto, não ofereceremos suporte ao PHP para Windows em qualquer capacidade para a versão 8.0 e posterior”&lt;br&gt;
Dale Hirt&lt;br&gt;
Service Engineer — Microsoft&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A notícia, de 09 de julho de 2020, de que a Microsoft estaria deixando de dar suporte ao PHP 8.0 deixou muita gente surpresa e também com “medo” pois perde um apoio significativo. Então, agora o PHP morre? Todo ano nos deparamos com esta pergunta, seja em artigos ou em fóruns e grupos pela Internet. Isso se deve pelo fato da linguagem ser muito amada e também muito odiada por muitos programadores pelo mundo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d-P3gO1H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nx8pr9p088ad7nj7aqpr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d-P3gO1H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nx8pr9p088ad7nj7aqpr.png" alt="Stack Overflow via Tecnoblog" width="700" height="525"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Stack Overflow via Tecnoblog&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mas, fique tranquilo, não há motivos para pânico! O fim do suporte da Microsoft ao PHP significa que a empresa não estará compilando e aplicando as correções de segurança na versão para Windows a partir da versão 8.0. Entre as compilações que a Microsoft faz estão os arquivos “php.exe” e “mod_php7.dll”, por exemplo, além dos outros oficiais encontrados em &lt;a href="https://windows.php.net"&gt;https://windows.php.net&lt;/a&gt;. Também, não significa que o PHP deixará de rodar no Windows nativamente. Muita gente já está cogitando usar o PHP em Linux através de máquinas virtuais para continuar programando na linguagem através do Windows.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Esta mensagem NÃO significa que ninguém o fará.”&lt;br&gt;
Sara Golemon&lt;br&gt;
PHP contributor&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Uma contribuidora do PHP, Sara Golemon, (SaraMG no Twitter), acalmou o ânimo de alguns aflitos no reddit. Ela afirma o que muitos já esperavam. Apesar de não saberem ainda o que farão, pois ainda estão assimilando a notícia, ela explica que a própria comunidade deve absorver essa demanda, possivelmente alocando alguma máquina para processos automatizados para compilar o que for necessário. E, finaliza dizendo que provavelmente pouco mudará para os usuários do Windows.&lt;/p&gt;

&lt;p&gt;Sugiro que dê uma lida nas referências desse artigo para saber mais. Está tranquilo agora? Espero que sim, pois, o PHP como muitas outras linguagens populares, não vai morrer da noite pro dia, tem evoluído constantemente e tem uma comunidade muito forte! Espero que tenha gostado do artigo, me siga para mais artigos sobre PHP e outras linguagens e também outras tecnologias.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências:
&lt;/h2&gt;

&lt;p&gt;Microsoft: We're pulling the plug on Windows builds of programming language PHP&lt;br&gt;
&lt;a href="https://www.zdnet.com/article/microsoft-were-pulling-the-plug-on-windows-builds-of-programming-language-php/"&gt;https://www.zdnet.com/article/microsoft-were-pulling-the-plug-on-windows-builds-of-programming-language-php/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft Support of PHP on Windows&lt;br&gt;
&lt;a href="https://news-web.php.net/php.internals/110907"&gt;https://news-web.php.net/php.internals/110907&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft Announces that it will drop official support of PHP on Windows&lt;br&gt;
&lt;a href="https://laravel-news.com/microsoft-dropping-php-support"&gt;https://laravel-news.com/microsoft-dropping-php-support&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>microsoft</category>
      <category>programacao</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
