Regra
Classe nome deve corresponder ao nome do ficheiro.
Muitas idiomas requerem classe nomes
para coincidam nomes de ficheiros exatamente, ou eles irão
falhar em sensíveis a maiúsculas e 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.
.avif)
