<?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>DEV Community: Bruno Oliveira</title>
    <description>The latest articles on DEV Community by Bruno Oliveira (@bruno_oliveira_d73cb98e24).</description>
    <link>https://dev.to/bruno_oliveira_d73cb98e24</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%2F2188273%2F6dbe690d-0b3e-4fc3-91ef-1556b674c8fa.PNG</url>
      <title>DEV Community: Bruno Oliveira</title>
      <link>https://dev.to/bruno_oliveira_d73cb98e24</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bruno_oliveira_d73cb98e24"/>
    <language>en</language>
    <item>
      <title>Aplicando Máscaras em Dados no PHP</title>
      <dc:creator>Bruno Oliveira</dc:creator>
      <pubDate>Fri, 07 Mar 2025 19:07:29 +0000</pubDate>
      <link>https://dev.to/bruno_oliveira_d73cb98e24/aplicando-mascaras-em-dados-no-php-naa</link>
      <guid>https://dev.to/bruno_oliveira_d73cb98e24/aplicando-mascaras-em-dados-no-php-naa</guid>
      <description>&lt;p&gt;Durante o desenvolvimento de sistemas, é comum a necessidade de formatar dados para exibição, como CPF, CNPJ e CEP. A boa prática recomenda armazenar esses dados no banco em seu formato “puro”, sem caracteres de formatação, garantindo maior flexibilidade e integridade.&lt;/p&gt;

&lt;p&gt;Entretanto, na apresentação de relatórios, notas fiscais ou telas de exibição, a formatação adequada desses dados melhora a legibilidade e a experiência do usuário. Para isso, podemos criar uma solução genérica e reutilizável no PHP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando um Helper para Máscaras
&lt;/h2&gt;

&lt;p&gt;Vamos implementar uma classe MaskHelper que permitirá aplicar máscaras de forma dinâmica aos dados.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php

namespace App\Helpers;

final class MaskHelper
{
    private const MASK_CHAR = '#';

    public static function mask(string $value, string $format): string
    {
        $cleanValue = self::clean($value);
        if ($cleanValue === '' || $format === '') {
            return $value;
        }

        $masked = '';
        $index = 0;

        foreach (str_split($format) as $char) {
            $masked .= ($char === self::MASK_CHAR &amp;amp;&amp;amp; isset($cleanValue[$index]))
                ? $cleanValue[$index++]
                : $char;
        }

        return $masked;
    }

    public static function cpf(string $value): string
    {
        return self::mask($value, '###.###.###-##');
    }

    public static function cnpj(string $value): string
    {
        return self::mask($value, '##.###.###/####-##');
    }

    public static function cpfCnpj(string $value): string
    {
        return match (strlen(self::clean($value))) {
            11 =&amp;gt; self::cpf($value),
            14 =&amp;gt; self::cnpj($value),
            default =&amp;gt; $value,
        };
    }

    private static function clean(string $value): string
    {
        return preg_replace('/\D/', '', $value) ?? '';
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Como Utilizar a Classe
&lt;/h2&gt;

&lt;p&gt;A implementação acima permite aplicar máscaras facilmente aos dados, tornando a formatação mais flexível e reutilizável em toda a aplicação. Veja alguns exemplos de uso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;php

use App\Helpers\MaskHelper;

$cpf = '12345678900';
echo MaskHelper::cpf($cpf); // Saída: 123.456.789-00

$cnpj = '12345678098700';
echo MaskHelper::cnpj($cnpj); // Saída: 12.345.678/0987-00

$documento = '12345678900';
echo MaskHelper::cpfCnpj($documento); // Detecta e aplica a máscara correta

$cep = '1234567';
echo MaskHelper::mask($cep, '##.###-##'); // Saída: 12.345-67
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A classe MaskHelper permite padronizar e reutilizar a formatação de dados em um sistema PHP, melhorando a manutenção do código e a experiência do usuário. Esse tipo de abordagem é útil para exibição de dados em relatórios, telas de administração e formulários.&lt;/p&gt;

&lt;p&gt;Caso precise de outras máscaras, basta chamar o método mask() com o formato desejado, tornando a solução altamente flexível!&lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
