P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🐘

Middle PHP BackendPreguntas de entrevista PHP

Middle · 2–4 años de experiencia

Las entrevistas de PHP cubren semántica del lenguaje, OOP, Laravel o Symfony, MySQL, y fundamentos de seguridad web. Aquí están las preguntas más comunes con respuestas modelo. Middle: comprensión más profunda, optimización y situaciones reales de trabajo.

Pruébalo — sin cuenta necesaria
Preparando tu pregunta…

Temas para prepararte

OOP y SOLID en PHP
Laravel / Symfony
MySQL y optimización de consultas
Composer y autoloading
Sesiones, cookies, seguridad
Estándares PSR

7 preguntas de nivel Middle con respuestas

1

¿Cuál es la diferencia entre `has_many through` y `belongsToMany`?

Respuesta

En términos de Laravel, belongsToMany usa una tabla pivot que existe solo para unir dos modelos. Una relación has-many-through alcanza un modelo distante vía uno intermedio que es una entidad real por derecho propio. Si la tabla de unión lleva sus propios datos — un timestamp, un status — es un modelo, y tratarla como pivot es cómo esos datos se vuelven incómodos de alcanzar.

2

¿Qué es una consulta N+1 y cómo encuentras una?

Respuesta

Una consulta para una lista y una más por elemento, porque una relación se carga de forma lazy dentro de un loop. La encuentras en el log de consultas o con un paquete que cuenta consultas por request. with() la carga eager en una segunda consulta. La trampa es arreglarla cacheando la página en vez de la consulta.

3

¿Qué hace el service container?

Respuesta

Resuelve las dependencias de una clase por ti: pides un tipo en un constructor y el container lo construye, incluyendo las propias dependencias de ese tipo. Vincular una interfaz a una implementación en un provider es lo que hace que el código dependa de un contrato en vez de una clase concreta, que es el punto de todo el ejercicio.

4

¿Cuál es la diferencia entre un middleware y un controller?

Respuesta

El middleware envuelve el request y decide si continúa — autenticación, rate limiting, logging. Un controller maneja el request que logró pasar. El orden importa, y poner la autorización en un controller en vez de middleware significa que cada controller tiene que recordar hacerlo.

5

¿Cómo funcionan las colas, y qué tiene que ser cierto de un job?

Respuesta

El job se serializa a un store, un proceso worker lo saca y lo corre fuera de banda. Lo que tiene que ser cierto es que puede correr dos veces — el worker puede crashear después de hacer el trabajo y antes de confirmarlo. Cualquier cosa que envíe dinero o correo necesita una guarda, y los jobs de larga duración necesitan un timeout más corto que la ventana de visibilidad.

6

¿Cuál es la diferencia entre una migration y un seeder?

Respuesta

Una migration cambia el schema y está versionada para que cada entorno converja a la misma forma. Un seeder inserta datos — filas de referencia en producción, datos falsos en desarrollo. Poner cambios de datos dentro de una migration es común y está bien para datos de referencia, pero hacer backfill de una tabla grande ahí bloquea el deploy.

7

¿Cómo previenes SQL injection y XSS?

Respuesta

SQL injection se previene con parameter binding, que el query builder y Eloquent hacen por ti — el peligro es DB::raw con input interpolado. XSS se previene escapando en la salida, que las {{ }} de Blade hacen y las {!! !!} deliberadamente no. Ambos son sobre no mezclar datos en un lenguaje en el momento equivocado.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de Middle PHP Backend →
Gratis · 3 entrevistas al mes

Otros niveles — PHP Backend

Junior PHP BackendSenior PHP BackendTodas las preguntas de PHP Backend

Otras especializaciones

🔍Middle Manual QA🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🦫Middle Go Backend🟢Middle Node.js Backend💎Middle Ruby on Rails🔷Middle C++🟨Middle JavaScript⚛️Middle React Frontend