Regra
Classe nome deve corresponder nome do ficheiro.
Muitos linguagens exigem classe nomes
correspondam corresponder nomes de ficheiros exatamente, ou eles
falhar em distingue maiúsculas de minúsculas sistemas de ficheiros (Linux).
Linguagens suportadas: PHPIntrodução
O autoloading PSR-4 do PHP exige que os nomes das classes correspondam exatamente aos nomes dos arquivos, incluindo o uso de maiúsculas e minúsculas. Uma classe chamada UserRepository deve estar em UserRepository.php, não userrepository.php. Isso funciona em sistemas de arquivos que não diferenciam maiúsculas de minúsculas como Windows e macOS, mas falha em servidores Linux, causando erros de "Class not found" em produção.
Por que isso importa
Falhas de produção: Nomes incompatíveis causam falhas de autoload em servidores Linux onde os sistemas de arquivos diferenciam maiúsculas de minúsculas. O código que funciona localmente quebra em produção, exigindo hotfixes de emergência e causando tempo de inatividade.
Conformidade com PSR-4: Frameworks PHP modernos dependem do autoloading PSR-4. Classes que não seguem as convenções de nomenclatura não podem ser carregadas automaticamente, quebrando a injeção de dependência, service containers e recursos do framework.
Exemplos de código
❌ Não-conforme:
<?php
// File: userrepository.php
namespace App\Repositories;
class UserRepository
{
public function findById($id)
{
return User::find($id);
}
public function save(User $user)
{
return $user->save();
}
}
Por que está errado: O nome da classe é UserRepository mas o nome do arquivo é userrepository.php (minúsculas). O autoloader PSR-4 procurará por UserRepository.php e falham em encontrá-lo em sistemas de arquivos Linux que diferenciam maiúsculas de minúsculas, causando erros fatais em produção.
✅ Compatível:
<?php
// File: UserRepository.php
namespace App\Repositories;
class UserRepository
{
public function findById($id)
{
return User::find($id);
}
public function save(User $user)
{
return $user->save();
}
}
Por que isso importa: O nome do arquivo UserRepository.php corresponde ao nome da classe UserRepository exatamente, incluindo o case. O autoloader PSR-4 pode localizar e carregar a classe de forma confiável em qualquer sistema de arquivos, eliminando falhas específicas do ambiente e garantindo um comportamento consistente entre desenvolvimento e produção.
Conclusão
Imponha a correspondência estrita de nome de arquivo para nome de classe desde o início do seu projeto. Configure seu IDE para nomear arquivos corretamente automaticamente ao criar classes. Use verificações automatizadas em pipelines de CI/CD para detectar incompatibilidades antes da implantação. Os cinco minutos gastos garantindo a nomenclatura adequada evitam horas de depuração de falhas de autoload em produção.

