# Requisitos entrevista # Obligatorios - Inyección de dependiencias. ¿qué es? ¿qué ventajas tiene? ¿qué son los Service Providers? - Si necesitas traer datos de más de una tabla de BBDD, ¿cómo lo harías? ¿sabes lo que es una foreign key? ¿una clave primaria? - ¿Qué es un middleware? ¿Cuál es su utilidad? ¿Lo ves necesario siempre? - ¿Conoces la herencia? ¿Para que usarías una clase abstracta? ¿Sabes lo que es el ámbito de una variable/método? ¿Cuándo definirías una variable o método como protected? - ¿Conoces lo que es un repositorio? - ¿Qué ORMs conoces? ¿Eloquent? ¿Doctrine? - Composer. ¿Para qué se usa? - artisan. ¿Qué utilidades tiene el comando artisan? - Arquitectura. ¿Has trabajado con arquitectura en capas? ¿Con qué capas has trabajado? ¿Dónde realizarías la lógica de negocio? - ¿Para qué se usa el .env? ¿Qué pondrías en el .env? - ¿Qué son las Migrations? # Opcionales - ¿Qué patrones de diseño conoces y cuáles has usado? ¿Conoces el patrón builder? - Docker - Consultas SQL - diferencia entre join y left join - subconsultas - Tests. ¿Qué tipos de tests realizas normalmente? ¿Sabes lo que son los mocks? - ¿Qué versión de PHP usas? ¿Has usado el tipado en PHP? - Metodología SCRUM. ¿Trabajas con revisiones de código? ¿Sabes lo que es una Pull Request/Merge Request? - ¿Has trabajado con alguna serie de reglas de buenas prácticas o clean code? - ¿Documentáis los endpoints? ¿Cómo lo hacéis? - Traits. ¿Sabes lo que son?