Regla
Clase nombre debe coincidir con nombre de archivo.
Muchos idiomas requieren clase nombres
que coincidan con nombres de archivo exactamente, o fallarán
fallarán en distingue entre mayúsculas y minúsculas sistemas de archivos (Linux).
Lenguajes soportados: PHPIntroducción
La autocarga PSR-4 de PHP requiere que los nombres de las clases coincidan exactamente con los nombres de los archivos, incluyendo mayúsculas y minúsculas. Una clase llamada UsuarioRepositorio debe estar en UserRepository.phpno userrepository.php. Esto funciona en sistemas de archivos que no distinguen entre mayúsculas y minúsculas, como Windows y macOS, pero se rompe en los servidores Linux, causando errores de "Clase no encontrada" en la producción.
Por qué es importante
Fallos de producción: Los nombres no coincidentes provocan fallos de carga automática en servidores Linux en los que los sistemas de archivos distinguen entre mayúsculas y minúsculas. El código que funciona a nivel local se rompe en producción, lo que requiere correcciones urgentes y provoca tiempos de inactividad.
Conformidad con PSR-4: Los frameworks PHP modernos se basan en la autocarga PSR-4. Las clases que no siguen las convenciones de nomenclatura no se pueden cargar automáticamente, lo que rompe la inyección de dependencias, los contenedores de servicios y las características del framework.
Ejemplos de códigos
❌ No 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 qué está mal: El nombre de la clase es UsuarioRepositorio pero el nombre del archivo es userrepository.php (minúsculas). El autocargador PSR-4 buscará UserRepository.php y no lo encuentran en sistemas de archivos Linux que distinguen entre mayúsculas y minúsculas, provocando errores fatales en la producción.
✅ 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 qué es importante: El nombre del archivo UserRepository.php coincide con el nombre de la clase UsuarioRepositorio exactamente, incluyendo case. El autocargador PSR-4 puede localizar y cargar la clase de forma fiable en cualquier sistema de archivos, eliminando fallos específicos del entorno y garantizando un comportamiento coherente en desarrollo y producción.
Conclusión
Imponga una correspondencia estricta entre nombre de archivo y nombre de clase desde el inicio del proyecto. Configure su IDE para que asigne automáticamente el nombre correcto a los archivos al crear clases. Utilice comprobaciones automatizadas en los procesos CI/CD para detectar los errores antes del despliegue. Los cinco minutos dedicados a garantizar la correcta asignación de nombres evitan horas de depuración de fallos de carga automática en producción.
.avif)
