Automação de rotina em PHP: 5 scripts poderosos que economizarão horas de trabalho

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Seu assistente pessoal em PHP: por que a automação é um superpoder



Imagine uma segunda-feira de manhã. Você chega ao escritório, abre o notebook, e toda a rotina já está feita: backups enviados ao servidor, lembretes enviados aos clientes, e os relatórios CSV de ontem já processados e lindamente empacotados em PDF. Parece fantasia? Pois não é.



A maioria dos desenvolvedores PHP (e não só) gasta até 30% do tempo de trabalho em tarefas repetitivas e monótonas. Automação em PHP não é mágica, mas sim o uso inteligente de funções nativas e algumas bibliotecas. Hoje vou mostrar 5 scripts reais que você poderá executar em apenas 10 minutos após ler este artigo.



A propósito, se você tem interesse em automação com Python — temos ótimos materiais no PythonLib. Mas hoje vamos falar de PHP, porque ele ainda domina o lado do servidor (até 77% dos sites rodam nele).



1. Limpeza e arquivamento automáticos de logs antigos



Os logs crescem como uma bola de neve. Ontem o arquivo error.log tinha 50 MB, hoje já tem 500. A limpeza manual é um sofrimento. Vamos escrever um script PHP para automatizar essa tarefa.



Script: LogRotator



<?phpclass LogRotator {    private string $logDir;    private string $archiveDir;    private int $maxFileAgeDays;

public function __construct(string $logDir, string $archiveDir, int $maxFileAgeDays = 30) { $this->logDir = rtrim($logDir, '/'); $this->archiveDir = rtrim($archiveDir, '/'); $this->maxFileAgeDays = $maxFileAgeDays; }

public function rotate(): void { if (!is_dir($this->archiveDir)) { mkdir($this->archiveDir, 0755, true); }

$files = glob($this->logDir . '/*.log'); foreach ($files as $file) { $fileAge = time() - filemtime($file); if ($fileAge > $this->maxFileAgeDays * 86400) { $archiveName = $this->archiveDir . '/' . basename($file) . '.' . date('Ymd') . '.gz'; $gzData = gzencode(file_get_contents($file), 9); file_put_contents($archiveName, $gzData); unlink($file); echo "Arquivado: " . basename($file) . PHP_EOL; } } }}

// Uso:$rotator = new LogRotator('/var/log/myapp', '/backup/logs/archive');$rotator->rotate();?>


Este script de automação PHP faz três coisas: encontra arquivos com mais de 30 dias, compacta-os em GZIP e os move para o arquivo. Execute-o via CRON uma vez por semana — e esqueça o "disco cheio".



2. Envio em massa de notificações por e-mail personalizadas



Suponha que você tenha uma loja virtual. O cliente fez um pedido e precisa receber um e-mail com os detalhes. Fazer isso manualmente é tolice. Automação de tarefas em PHP usando a função nativa mail() ou PHPMailer resolve o problema.



Exemplo: envio de lembretes de carrinhos abandonados



<?phpfunction sendAbandonedCartReminder(string $email, string $customerName, array $items): bool {    $subject = "Você esqueceu o carrinho, $customerName! 🛒";        $message = "<h2>Olá, $customerName!</h2>";    $message .= "<p>Você deixou estes itens:</p><ul>";        foreach ($items as $item) {        $message .= "<li>{$item['name']} - {$item['price']} R$</li>";    }        $message .= "</ul><p><a href='https://yourshop.com/cart'>Voltar ao carrinho</a></p>";        $headers = "MIME-Version: 1.0\\r";    $headers .= "Content-Type: text/html; charset=UTF-8\\r";    $headers .= "From: shop@yourshop.com\\r";        return mail($email, $subject, $message, $headers);}

// Envio em massa:$customers = [ ['email' => 'ivan@example.com', 'name' => 'I

Blogs

Book Recommendations