# 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?