"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Explicación detallada de los estándares de carga automática de PSR en PHP

Explicación detallada de los estándares de carga automática de PSR en PHP

Publicado el 2025-04-29
Navegar:854

PSR-Autoloading Standard in PHP

Ahnii!

¿Recuerdas el manual de Php requirir días? La semana pasada, ayudé a un equipo a actualizar su aplicación heredada: más de 50 requerir ¡declaraciones por archivo! Veamos cómo PSR-4 Autoading resuelve esto.

comprensión de PSR-4 (5 minutos)

PSR-4 es el localizador de archivos automático de su código. Al igual que un GPS usando direcciones, PSR-4 usa espacios de nombres para encontrar clases.

conceptos clave (2 minutos)

  1. Nombre de clase totalmente calificado (fqcn): proveedor \ paquete \ class . Piense en ello como la dirección completa de su clase.
  2. Estructura del directorio: un directorio de proyecto bien organizado con asignaciones de espacio de nombres a directorio.

Ejemplo del mundo real (10 minutos)

Estructura del proyecto:

vendor/
└── jonesrussell/
    └── blog/
        ├── composer.json
        └── src/
            └── Post/
                ├── PostController.php
                └── PostRepository.php

configurando compositor (3 minutos)

composer.json :

{
    "name": "jonesrussell/blog",
    "autoload": {
        "psr-4": {
            "JonesRussell\\Blog\\": "src/"
        }
    }
}

creando clases (2 minutos)

postcontroller.php :

 'Ready to blog!'];
    }
}

Patrones comunes (5 minutos)

múltiples raíces de espacio de nombres:

{
    "autoload": {
        "psr-4": {
            "JonesRussell\\Blog\\": "src/",
            "JonesRussell\\Blog\\Tests\\": "tests/"
        }
    }
}

espacios de nombres anidados: (ubicación del archivo: src/core/database/conecte.php )

config = $config;
    }
}

Framework Ejemplos (5 minutos)

Laravel y Symfony usan PSR-4 por defecto.

Laravel Ejemplo:

Symfony Ejemplo:

render('blog/index.html.twig');
    }
}

Solución de problemas (3 minutos)

  • "clase no encontrada" errores: run composer dump-autoload .
  • Problemas de la estructura del directorio: Asegúrese de que la estructura de su directorio coincida con sus espacios de nombres (¡casos sensibles!).

testing (2 minutos)

create test-autoload.php :

index()); // Should output "Ready to blog!"

próximos pasos

Siguiente, cubriremos PSR-6 (almacenamiento en caché). Esto es parte de nuestra serie de estándares PSR.

Recursos

  • especificación oficial de PSR-4
  • composer documentación de autoengustación
  • Series Ejemplo Repository (v0.3.0 - implementación PSR -4)
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3