leomottarocha / cotidiano
Classe desenvolvida para rotinas do cotidiano
Installs: 25
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/leomottarocha/cotidiano
Requires
- php: >=7.4
README
Conjunto de utilitários em PHP para o dia a dia de desenvolvimento, com foco em formatação/validação de CPF/CNPJ, datas e horários, sanitização de strings, geração de senhas, operações básicas com PDO (SELECT/INSERT/UPDATE/DELETE com retornos padronizados) e utilitários HTTP (ViaCEP e verificação de URL).
Namespace:
Source\Models
Classe:final Cotidiano
Requisitos: PHP 8.1+ (recomendado 8.2/8.3), PDO habilitado eext-curlpara métodos HTTP.
📦 Instalação
Via Composer (autoload do seu projeto)
{
"autoload": {
"psr-4": {
"Source\\Models\\": "src/Models/"
}
}
}
Coloque o arquivo Cotidiano.php em src/Models/ (ou ajuste conforme sua estrutura) e rode:
composer dump-autoload
🚀 Inicialização
<?php use Source\Models\Cotidiano; $c = new Cotidiano();
🧩 Principais Recursos
✅ Documentos (Brasil)
somenteNumeros()→ remove tudo que não é númeromascararCpf()/mascararCnpj()→ aplica máscaravalidarCpf()/validarCnpj()→ valida dígitos verificadores
🕒 Datas e Tempo
contarTempo()→ diferença entre duas datas em minutos/horas/dias/meses/anosretornarDiaDaSemana()→ retorna o dia da semana em portuguêsajustarData()→ soma ou subtrai dias/meses/anosretornarDiaUtil()→ avança para o próximo dia útil (regra simples)formatarData()→ converte deY-m-dpara outro formato
🧠 Strings e Textos
letrasMinusculas()→ normaliza array em minúsculas sem duplicadosremoverAcentos()→ remove acentuação de forma segura
🔐 Segurança
gerarSenhaRandomica()→ gera senha forte comrandom_int()
🗄️ Banco de Dados (PDO)
selecionarDados()→ SELECT padronizadocadastrarDados()→ INSERT comlastInsertId()atualizarDados()→ UPDATE (exigeWHERE)deletarDados()→ DELETE (exigeWHERE)
🌐 HTTP Utilitários
consultarCEP()→ busca CEP via ViaCEPurlValida()→ valida formato e, opcionalmente, checa status HTTP (HEAD/redirects)
Mudanças recentes
- Classe marcada como
final- Novo:
consultarCEP(cep)(ViaCEP,ext-curl)- Novo:
urlValida(url, checkOnline=false)(validação + verificação online opcional)
📚 Tabela de Métodos
| Método | Descrição | Exemplo |
|---|---|---|
somenteNumeros($valor) |
Mantém apenas dígitos. | (21) 99999-0000 → 21999990000 |
mascararCpf($cpf) |
Aplica máscara 000.000.000-00. | 12345678901 → 123.456.789-01 |
mascararCnpj($cnpj) |
Aplica máscara 00.000.000/0000-00. | 11222333000181 → 11.222.333/0001-81 |
validarCpf($cpf) |
Valida CPF. | true/false |
validarCnpj($cnpj) |
Valida CNPJ. | true/false |
contarTempo($ini,$fim,$unidade,$tz) |
Diferença em minutos/horas/dias/meses/anos. | "9 dias" |
retornarDiaDaSemana($data) |
Dia da semana em pt-BR. | "Quarta-feira" |
ajustarData($data,$dias,$periodo) |
Soma/subtrai D/M/Y. | 2025-10-25 |
retornarDiaUtil($data) |
Próximo dia útil (regra simples). | 2025-10-27 |
formatarData($data,$formato) |
Formata Y-m-d em outro formato. |
22/10/2025 |
gerarSenhaRandomica($tamanho) |
Senha forte com símbolos. | "A9@bZ..." |
removerAcentos($string) |
Remove acentuação. | "ação" → "acao" |
selecionarDados($sql,$conn) |
SELECT (PDO) com retorno padronizado. | — |
cadastrarDados($sql,$conn) |
INSERT (PDO) com lastInsertId(). |
— |
atualizarDados($sql,$conn) |
UPDATE (PDO) – exige WHERE. |
— |
deletarDados($sql,$conn) |
DELETE (PDO) – exige WHERE. |
— |
consultarCEP($cep) |
ViaCEP (ext-curl). |
consultarCEP('01001-000') |
urlValida($url,$checkOnline=false) |
Valida formato e opcionalmente checa HTTP. | urlValida('https://.../', true) |
💡 Exemplos de Uso
📄 Documentos & Strings
$c->somenteNumeros('(21) 99999-0000'); // "21999990000" $c->mascararCpf('12345678901'); // "123.456.789-01" $c->validarCnpj('11.222.333/0001-81'); // true/false $c->removerAcentos('João da Silva'); // "Joao da Silva"
🕒 Datas e Tempo
$c->contarTempo('2025-01-01','2025-01-10','dias'); // "9 dias" $c->retornarDiaDaSemana('2025-10-22'); // "Quarta-feira" $c->ajustarData('2025-10-22', 3); // "2025-10-25" $c->retornarDiaUtil('2025-10-24'); // "2025-10-27" $c->formatarData('2025-10-22'); // "22/10/2025" $c->gerarSenhaRandomica(20); // "..."
🧮 Banco de Dados (PDO)
use PDO; use Source\Models\Cotidiano; $pdo = new PDO('mysql:host=localhost;dbname=app;charset=utf8mb4', 'user', 'pass', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]); $c = new Cotidiano(); // SELECT $r = $c->selecionarDados("SELECT id,nome FROM clientes LIMIT 10", $pdo); // INSERT $r = $c->cadastrarDados(" INSERT INTO clientes (nome, email) VALUES ('Ana','ana@exemplo.com') ", $pdo); // UPDATE (com WHERE) $r = $c->atualizarDados(" UPDATE clientes SET nome='Ana Maria' WHERE id=123 ", $pdo); // DELETE (com WHERE) $r = $c->deletarDados(" DELETE FROM clientes WHERE id=123 ", $pdo);
🌐 HTTP Utilitários
// ViaCEP $cep = $c->consultarCEP('01001-000'); // array ou null // Verificação de URL (somente formato) $check = $c->urlValida('https://www.linkedin.com/in/usuario'); // Verificação de URL (formato + online) $check = $c->urlValida('https://www.linkedin.com/in/usuario', true); /* [ 'url' => 'https://...', 'formato_valido' => true, 'http_status' => 999, // exemplo 'acessivel' => true, 'erro' => null ] */
📤 Padrão de Retorno (PDO)
Todos os métodos de banco retornam um array associativo:
[ "status" => bool, "msg_erro" => string, "total_registros" => int, "data" => array|mixed ]
Mensagens comuns:
"Não há registros com a instrução SQL: ..."quandorowCount() === 0- Exceções de
PDOExceptionretornadas em"msg_erro"
🔒 Boas Práticas e Segurança
- SQL dinâmico: use prepared statements e
bindValue()antes de passar a query final quando envolver dados de usuário. - Proteção:
UPDATEeDELETEexigemWHERE— bloqueio por design. - HTTP: sites como LinkedIn podem bloquear bots; ainda assim, códigos HTTP > 0 indicam resposta.
- Timezone:
contarTempo()aceita timezone (padrãoAmerica/Sao_Paulo).
⚙️ Compatibilidade
- PHP 8.1+
- Extensões:
PDO,mbstring,json,ctype,curl - Testado em MariaDB 10.4+ e MySQL 8.0+
🧭 Roadmap
- Prepared statements internos opcionais (helper)
- Normalizador de datas multi-formato (
d/m/Y,Y-m-d H:i, etc.) - Máscaras genéricas (telefone, CEP)
- Conversão de moedas e formatação pt-BR ↔ ISO
🤝 Contribuição
Pull requests são bem-vindos!
Antes de contribuir:
- Crie um fork do repositório
- Crie uma branch (
feature/nova-funcao) - Envie seu PR com descrição e testes
🧾 Changelog
v1.1.0
- Novo:
consultarCEP()(ViaCEP,ext-curl) - Novo:
urlValida()(validação e verificação online opcional) - Alteração: classe marcada como
final - Docs: README e PHPDoc atualizados
v1.0.0
- Versão inicial com CPF/CNPJ, datas/tempo, strings, senhas e CRUD PDO básicos.
📄 Licença
Distribuído sob a Licença MIT. Uso livre para fins pessoais e comerciais.
💬 Créditos
Desenvolvido por Léo Motta Rocha
LinkedIn • GitHub
Se esta classe te ajudou, ⭐ deixe uma estrela no repositório!