PHP Velho Oeste 2026
PHP tem 30+ e ele não é o problema. O problema é o problema!
ninguém entende tudo
há efeitos colaterais
regras escondidas
deploy parece loteria
do Latim, Legatum
"algo deixado em testamento"
Deriva de legare ( delegar / encarregar)
[SUCCESS] Sustenta o negócio
[SUCCESS] Gera Receita
[SUCCESS] Resolve Problemas reais
[SUCCESS] Sobreviveu ao tempo
[SUCCESS] Acertou*
vamos fazer
do jeito certo
tecnologias
novas
resolver
tudo
em poucos
meses
IA vai
acelerar
// .phtml
<table>
<?php
$con = include 'conexao.php';
$clients = mysqli_query($con, "SELECT * FROM tb_clients";
while ($item = mysql_fetch_assoc($clients)) {
echo "<tr>
<td>{$item['nome']}</td>
</tr>";
}
?>
</table>
// .blade.php
<table>
<?php
$clients = App\Models\Client::all();
foreach ($clients as $item) {
echo "<tr>
<td>{$item->nome}</td>
</tr>";
}
?>
</table>
// .blade.php
<table>
<?php
$clients = App\Models\Client::all();
foreach ($clients as $item) {
$qtd_compras = $item->compras()->count();
echo "<tr>
<td>{$item->nome}</td>
<td>{$qtd_compras}</td>
</tr>";
}
?>
</table>
// .blade.php
// O novo legado!
<table>
<?php
$clients = App\Models\Client::all();
foreach ($clients as $item) {
// N+1 Query
$qtd_compras = $item->compras()->count();
echo "<tr>
<td>{$item->nome}</td>
<td>{$qtd_compras}</td>
</tr>";
}
?>
</table>
Fig (Figueira)
Gameleira / Abraço da Morte
O sistema novo cresce aos poucos ao redor do sistema antigo. Até sufocar o antigo
Transformar, Coexistir, Eliminar
O usuário nem percebe.
Com pequenos passos vem pequenos riscos
include('conexao.php');
$sql = mysql_query(
"SELECT * FROM clientes"
);
while ($cliente = mysql_fetch_assoc($sql)) {
echo $cliente['nome'];
}
class ClienteController {
public function salvar() {
$sql = "
INSERT INTO clientes (nome, email)
VALUES ('{$this->nome}', '{$this->email}')
";
mysqli_query(Conexao::con(), $sql);
header("location: /clientes?success=1");
}
}
$.ajax({
url: "/clientes",
success: function(clientes) {
clientes.forEach(function(cliente) {
$("#lista").append(
"" + cliente.nome + " "
);
});
}
});
Route::get('/clientes', function () {
return Cliente::all();
});
location /clientes {
proxy_pass http://novo-sistema;
}
location / {
proxy_pass http://legado;
}
mas aí virou suruba, só que organizada
Na psicologia chamamos isso de
Buscar o equilibrio entre Aceitação e Mudança
módulos
acoplados
integrações
quebradas
regras
esquecidas
sem
observabilidade
Bom, como dizia minha ex:
Terminamos