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 carregamento automático PSR-4 do PHP requer que os nomes das classes correspondam exatamente aos nomes dos ficheiros, incluindo maiúsculas e minúsculas. Uma classe chamada Repositório de utilizadores deve estar em UserRepository.php, não userrepository.php. Isto funciona em sistemas de ficheiros que não fazem distinção entre maiúsculas e minúsculas, como o Windows e o macOS, mas falha nos servidores Linux, causando erros de "Classe não encontrada" na produção.
Porque é importante
Falhas na produção: Nomes incompatíveis causam falhas de carregamento automático em servidores Linux onde os sistemas de ficheiros são sensíveis a maiúsculas e minúsculas. O código que funciona localmente quebra na produção, exigindo hotfixes de emergência e causando tempo de inatividade.
Conformidade com o PSR-4: As estruturas PHP modernas dependem do carregamento automático 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, contêineres de serviço e recursos da estrutura.
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();
}
}
Porque é que é errado: O nome da classe é Repositório de utilizadores mas o nome do ficheiro é userrepository.php (minúsculas). O carregador automático PSR-4 procurará UserRepository.php e não o encontrar em sistemas de ficheiros Linux sensíveis a maiúsculas e minúsculas, causando erros fatais na produção.
Conformidade:
<?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();
}
}
Porque é que isto é importante: O nome do ficheiro UserRepository.php corresponde ao nome da classe Repositório de utilizadores exatamente, incluindo o caso. O carregador automático PSR-4 pode localizar e carregar a classe de forma fiável em qualquer sistema de ficheiros, eliminando falhas específicas do ambiente e garantindo um comportamento consistente no desenvolvimento e na produção.
Conclusão
Imponha uma correspondência rigorosa entre nome de arquivo e nome de classe desde o início do seu projeto. Configure seu IDE para nomear automaticamente os arquivos corretamente ao criar classes. Use verificações automatizadas em pipelines de CI/CD para detetar incompatibilidades antes da implantação. Os cinco minutos gastos para garantir a nomeação correta evitam horas de depuração de falhas de carregamento automático de produção.
.avif)
