<?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: Lucas Dias</title>
    <description>The latest articles on DEV Community by Lucas Dias (@lucashub).</description>
    <link>https://dev.to/lucashub</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4203221%2Fb881a4fc-669f-4148-878c-6027dff766aa.png</url>
      <title>DEV Community: Lucas Dias</title>
      <link>https://dev.to/lucashub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucashub"/>
    <language>en</language>
    <item>
      <title>Criei um sistema de finanças pessoais em PHP puro, sem Composer: o que aprendi</title>
      <dc:creator>Lucas Dias</dc:creator>
      <pubDate>Fri, 23 Oct 2026 18:32:51 +0000</pubDate>
      <link>https://dev.to/lucashub/criei-um-sistema-de-financas-pessoais-em-php-puro-sem-composer-o-que-aprendi-4cmi</link>
      <guid>https://dev.to/lucashub/criei-um-sistema-de-financas-pessoais-em-php-puro-sem-composer-o-que-aprendi-4cmi</guid>
      <description>&lt;p&gt;Nos últimos meses construí o Saldora, um sistema de controle financeiro pessoal que roda em qualquer hospedagem compartilhada com cPanel. Quero compartilhar algumas decisões técnicas, porque elas podem servir pra quem também quer entregar projetos PHP fáceis de instalar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que PHP puro, sem Composer?
&lt;/h2&gt;

&lt;p&gt;Muita gente que compra ou instala um sistema assim usa hospedagem compartilhada sem acesso SSH. Sem Composer, basta subir os arquivos e abrir o instalador no navegador. O preço disso é escrever um roteador, um autoloader e uma camada de banco pequenos, mas o código fica simples de entender.&lt;/p&gt;

&lt;h2&gt;
  
  
  MySQL ou SQLite com o mesmo código
&lt;/h2&gt;

&lt;p&gt;O instalador pergunta qual banco usar. Com PDO e SQL mais conservador (sem recursos exclusivos de cada banco), o mesmo código funciona em MySQL/MariaDB e em SQLite. O SQLite é ótimo para uso pessoal: zero configuração.&lt;/p&gt;

&lt;h2&gt;
  
  
  Segurança básica que não dá pra pular
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Senhas com password_hash&lt;/li&gt;
&lt;li&gt;Token CSRF em todo formulário&lt;/li&gt;
&lt;li&gt;Bloqueio após várias tentativas de login erradas&lt;/li&gt;
&lt;li&gt;Consultas sempre com prepared statements&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  PWA sem framework
&lt;/h2&gt;

&lt;p&gt;Um manifest e um service worker simples já permitem instalar o sistema no celular como se fosse um app, com ícone e tela cheia.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que tem no sistema
&lt;/h2&gt;

&lt;p&gt;Receitas, despesas e transferências, contas com saldo em tempo real, categorias com emoji e cor, orçamento mensal por categoria, painel com gráficos de fluxo de caixa e gastos, exportação CSV, português e inglês, 18 moedas, modo escuro e painel administrativo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Próximos passos
&lt;/h2&gt;

&lt;p&gt;Importação de CSV e lançamentos recorrentes estão na lista.&lt;/p&gt;

&lt;p&gt;Se tiver interesse no código-fonte completo, ele está disponível aqui: &lt;a href="https://kiwify.app/V4x7piU" rel="noopener noreferrer"&gt;https://kiwify.app/V4x7piU&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedbacks e críticas sobre as decisões acima são muito bem-vindos!&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>php</category>
      <category>sqlite</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
