Podcast
Questions and Answers
¿Cuál de las siguientes afirmaciones sobre rutas en Laravel es correcta?
¿Cuál de las siguientes afirmaciones sobre rutas en Laravel es correcta?
El middleware en Laravel se puede usar únicamente para gestionar sesiones.
El middleware en Laravel se puede usar únicamente para gestionar sesiones.
False
¿Qué comando se utiliza para crear un controlador en Laravel?
¿Qué comando se utiliza para crear un controlador en Laravel?
php artisan make:controller
Las migraciones permiten _____ la estructura de la base de datos.
Las migraciones permiten _____ la estructura de la base de datos.
Signup and view all the answers
Asocia los siguientes comandos de migración con su descripción:
Asocia los siguientes comandos de migración con su descripción:
Signup and view all the answers
¿Cuál de las siguientes bases de datos es compatible con Laravel?
¿Cuál de las siguientes bases de datos es compatible con Laravel?
Signup and view all the answers
Los modelos en Laravel no pueden definir atributos protegidos.
Los modelos en Laravel no pueden definir atributos protegidos.
Signup and view all the answers
¿Cuál es la utilidad de Eloquent ORM en los modelos de Laravel?
¿Cuál es la utilidad de Eloquent ORM en los modelos de Laravel?
Signup and view all the answers
¿Cuál de los siguientes comandos se utiliza para ejecutar una migración en Laravel?
¿Cuál de los siguientes comandos se utiliza para ejecutar una migración en Laravel?
Signup and view all the answers
Los modelos en Laravel están conectados exclusivamente a un solo tipo de base de datos.
Los modelos en Laravel están conectados exclusivamente a un solo tipo de base de datos.
Signup and view all the answers
Nombre del archivo que se debe configurar para conectar la base de datos en Laravel.
Nombre del archivo que se debe configurar para conectar la base de datos en Laravel.
Signup and view all the answers
Con el comando 'php artisan make:controller', se puede crear un ________ en Laravel.
Con el comando 'php artisan make:controller', se puede crear un ________ en Laravel.
Signup and view all the answers
Asocia las operaciones CRUD con sus descripciones correspondientes:
Asocia las operaciones CRUD con sus descripciones correspondientes:
Signup and view all the answers
Las API REST utilizan principalmente los siguientes métodos HTTP: ¿Cuáles son algunos de los métodos utilizados?
Las API REST utilizan principalmente los siguientes métodos HTTP: ¿Cuáles son algunos de los métodos utilizados?
Signup and view all the answers
Es importante mantener el código limpio y documentado en un proyecto de Laravel.
Es importante mantener el código limpio y documentado en un proyecto de Laravel.
Signup and view all the answers
¿Qué herramienta se utiliza en Laravel para la creación y modificación de tablas en la base de datos?
¿Qué herramienta se utiliza en Laravel para la creación y modificación de tablas en la base de datos?
Signup and view all the answers
¿Qué comando se utiliza para crear un recurso API en Laravel?
¿Qué comando se utiliza para crear un recurso API en Laravel?
Signup and view all the answers
Los controladores en Laravel pueden ser utilizados para manejar operaciones CRUD directamente.
Los controladores en Laravel pueden ser utilizados para manejar operaciones CRUD directamente.
Signup and view all the answers
Menciona una buena práctica al utilizar Blade en Laravel.
Menciona una buena práctica al utilizar Blade en Laravel.
Signup and view all the answers
Las migraciones en Laravel permiten _____ la estructura de la base de datos de manera controlada.
Las migraciones en Laravel permiten _____ la estructura de la base de datos de manera controlada.
Signup and view all the answers
Relaciona los conceptos de Laravel con su descripción:
Relaciona los conceptos de Laravel con su descripción:
Signup and view all the answers
¿Cuál de los siguientes comandos se utiliza para iniciar un servidor de desarrollo en Laravel?
¿Cuál de los siguientes comandos se utiliza para iniciar un servidor de desarrollo en Laravel?
Signup and view all the answers
El comando 'php artisan migrate:rollback' se utiliza para aplicar migraciones pendientes.
El comando 'php artisan migrate:rollback' se utiliza para aplicar migraciones pendientes.
Signup and view all the answers
¿Qué comando permite interactuar de forma interactiva con el código de la aplicación?
¿Qué comando permite interactuar de forma interactiva con el código de la aplicación?
Signup and view all the answers
El comando ________ se utiliza para mostrar todos los comandos disponibles en Artisan.
El comando ________ se utiliza para mostrar todos los comandos disponibles en Artisan.
Signup and view all the answers
Asocia los comandos de Artisan con su función:
Asocia los comandos de Artisan con su función:
Signup and view all the answers
¿Cuál de los siguientes métodos se utiliza para crear nuevos recursos en una API?
¿Cuál de los siguientes métodos se utiliza para crear nuevos recursos en una API?
Signup and view all the answers
La deserialización implica convertir objetos en formatos como JSON o XML.
La deserialización implica convertir objetos en formatos como JSON o XML.
Signup and view all the answers
El manejo de ________ es crucial para asegurar que los datos recibidos se ajustan a las reglas antes de su procesamiento.
El manejo de ________ es crucial para asegurar que los datos recibidos se ajustan a las reglas antes de su procesamiento.
Signup and view all the answers
Asocia las estrategias de versionado de API con su descripción:
Asocia las estrategias de versionado de API con su descripción:
Signup and view all the answers
¿Cuál de las siguientes reglas de validación asegura que un campo contenga una dirección de correo electrónico válida?
¿Cuál de las siguientes reglas de validación asegura que un campo contenga una dirección de correo electrónico válida?
Signup and view all the answers
El método 'failedValidation()' se utiliza para transformar datos de entrada antes de la validación.
El método 'failedValidation()' se utiliza para transformar datos de entrada antes de la validación.
Signup and view all the answers
¿Qué método se utiliza para acceder a los datos validados dentro de la clase FormRequest?
¿Qué método se utiliza para acceder a los datos validados dentro de la clase FormRequest?
Signup and view all the answers
Los datos se pueden recuperar incluyendo los no validados utilizando el método ________.
Los datos se pueden recuperar incluyendo los no validados utilizando el método ________.
Signup and view all the answers
Asocia las siguientes etapas del ciclo de vida de la solicitud con su descripción:
Asocia las siguientes etapas del ciclo de vida de la solicitud con su descripción:
Signup and view all the answers
¿Cuál de las siguientes reglas de validación se utiliza para definir que un campo es obligatorio?
¿Cuál de las siguientes reglas de validación se utiliza para definir que un campo es obligatorio?
Signup and view all the answers
El método messages()
permite definir mensajes personalizados para las reglas de validación.
El método messages()
permite definir mensajes personalizados para las reglas de validación.
Signup and view all the answers
¿Qué método se utiliza para verificar si el usuario está autorizado para hacer una solicitud en un FormRequest?
¿Qué método se utiliza para verificar si el usuario está autorizado para hacer una solicitud en un FormRequest?
Signup and view all the answers
El método ________
devuelve un array de reglas de validación para los datos de entrada.
El método ________
devuelve un array de reglas de validación para los datos de entrada.
Signup and view all the answers
Asocia las reglas de validación con su descripción:
Asocia las reglas de validación con su descripción:
Signup and view all the answers
¿Cuál de las siguientes afirmaciones es correcta sobre el uso de FormRequest en un controlador?
¿Cuál de las siguientes afirmaciones es correcta sobre el uso de FormRequest en un controlador?
Signup and view all the answers
La regla 'unique' se utiliza para asegurar que un campo tenga una longitud mínima antes de ser guardado.
La regla 'unique' se utiliza para asegurar que un campo tenga una longitud mínima antes de ser guardado.
Signup and view all the answers
Menciona un método para manejar la creación de un nuevo recurso después de que un FormRequest ha validado datos correctamente.
Menciona un método para manejar la creación de un nuevo recurso después de que un FormRequest ha validado datos correctamente.
Signup and view all the answers
¿Cuál es la función de @yield
en una plantilla base de Blade?
¿Cuál es la función de @yield
en una plantilla base de Blade?
Signup and view all the answers
¿Cómo se puede mostrar una variable llamada nombre
en una vista Blade?
¿Cómo se puede mostrar una variable llamada nombre
en una vista Blade?
Signup and view all the answers
El comando para crear un componente es php artisan make:________
.
El comando para crear un componente es php artisan make:________
.
Signup and view all the answers
Asocia las estructuras de control con su función:
Asocia las estructuras de control con su función:
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre los componentes en Laravel es correcta?
¿Cuál de las siguientes afirmaciones sobre los componentes en Laravel es correcta?
Signup and view all the answers
El uso de {!! $variable !!}
escapa las caracteres HTML.
El uso de {!! $variable !!}
escapa las caracteres HTML.
Signup and view all the answers
La función ________()
se utiliza para obtener la traducción en la plantilla Blade.
La función ________()
se utiliza para obtener la traducción en la plantilla Blade.
Signup and view all the answers
¿Cuál es la función principal de la directiva @section en Blade?
¿Cuál es la función principal de la directiva @section en Blade?
Signup and view all the answers
¿Qué directiva se debe utilizar para heredar un layout en una vista Blade?
¿Qué directiva se debe utilizar para heredar un layout en una vista Blade?
Signup and view all the answers
En la directiva @foreach, ¿cuál es el propósito del segundo parámetro?
En la directiva @foreach, ¿cuál es el propósito del segundo parámetro?
Signup and view all the answers
¿Qué resultado se obtiene al usar la directiva @include en una vista?
¿Qué resultado se obtiene al usar la directiva @include en una vista?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones acerca de la directiva @section es incorrecta?
¿Cuál de las siguientes afirmaciones acerca de la directiva @section es incorrecta?
Signup and view all the answers
¿Cuál de las siguientes opciones describe mejor la inyección de dependencias en Laravel?
¿Cuál de las siguientes opciones describe mejor la inyección de dependencias en Laravel?
Signup and view all the answers
Las reglas de validación se definen en el método rules()
de la clase Form Request.
Las reglas de validación se definen en el método rules()
de la clase Form Request.
Signup and view all the answers
¿Qué método se utiliza para sobrescribir mensajes de error personalizados en un Form Request?
¿Qué método se utiliza para sobrescribir mensajes de error personalizados en un Form Request?
Signup and view all the answers
La regla de validación '________' se utiliza para verificar si el valor es único en la base de datos.
La regla de validación '________' se utiliza para verificar si el valor es único en la base de datos.
Signup and view all the answers
Relaciona las reglas de validación con sus descripciones:
Relaciona las reglas de validación con sus descripciones:
Signup and view all the answers
¿Cuál es el comportamiento por defecto cuando la validación de datos falla en un Form Request?
¿Cuál es el comportamiento por defecto cuando la validación de datos falla en un Form Request?
Signup and view all the answers
Laravel permite personalizar la gestión de errores mediante la definición de métodos en la clase Form Request.
Laravel permite personalizar la gestión de errores mediante la definición de métodos en la clase Form Request.
Signup and view all the answers
Menciona una manera de acceder a los mensajes de error en una vista en Laravel.
Menciona una manera de acceder a los mensajes de error en una vista en Laravel.
Signup and view all the answers
¿Qué método HTTP se utiliza para eliminar un recurso específico?
¿Qué método HTTP se utiliza para eliminar un recurso específico?
Signup and view all the answers
Las rutas dinámicas en Laravel son rutas que no cambian y son fijas durante la ejecución.
Las rutas dinámicas en Laravel son rutas que no cambian y son fijas durante la ejecución.
Signup and view all the answers
¿Qué función cumplen los controladores en Laravel?
¿Qué función cumplen los controladores en Laravel?
Signup and view all the answers
Una ruta estática en Laravel se define con el método ________.
Una ruta estática en Laravel se define con el método ________.
Signup and view all the answers
Asocia los métodos HTTP con su descripción:
Asocia los métodos HTTP con su descripción:
Signup and view all the answers
Study Notes
Rutas Y Middleware
-
Rutas:
- Archivos de rutas ubicados en
routes/web.php
(oroutes/api.php
para API). - Soporta métodos HTTP como GET, POST, PUT, DELETE.
- Rutas pueden estar agrupadas y con prefijos usando
Route::group()
. - Se pueden crear rutas dinámicas utilizando parámetros en la URL.
- Se pueden asignar nombres a rutas para redireccionamientos y enlaces.
- Archivos de rutas ubicados en
-
Middleware:
- Son filtros que se ejecutan antes o después de una solicitud.
- Se pueden usar para autenticar usuarios, gestionar sesiones, etc.
- Middleware se pueden asignar a rutas específicas o a grupos de rutas.
- Se puede crear middleware personalizado usando el comando
php artisan make:middleware
. - Se deben registrar en
app/Http/Kernel.php
.
Controladores Y Modelos
-
Controladores:
- Clase que maneja la lógica y las operaciones de solicitudes.
- Se pueden crear controladores usando
php artisan make:controller
. - Existen controladores de recurso que gestionan las operaciones CRUD.
- Se pueden inyectar dependencias en controladores para un manejo más eficiente.
- Controladores pueden usar métodos de retorno como
view()
,redirect()
yjson()
.
-
Modelos:
- Representan las tablas en la base de datos.
- Se pueden crear modelos usando
php artisan make:model
. - Usan Eloquent ORM para interacciones con la base de datos.
- Soportan relaciones como uno a muchos, muchos a uno, y muchos a muchos.
- Se pueden definir atributos protegidos y accesores/mutadores.
Migraciones Y Bases De Datos
-
Migraciones:
- Permiten versionar la estructura de la base de datos.
- Se crean con
php artisan make:migration
. - Se definen en la clase de migración las columnas y tipos de datos.
- Comandos básicos:
-
php artisan migrate
: ejecuta todas las migraciones pendientes. -
php artisan migrate:rollback
: revierte la última migración. -
php artisan migrate:refresh
: revierte y vuelve a ejecutar todas las migraciones.
-
-
Bases De Datos:
- Laravel soporta múltiples bases de datos como MySQL, SQLite, PostgreSQL, etc.
- Configuración en el archivo
.env
(DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE). - Se puede utilizar el sistema de consultas de Eloquent o el constructor de consultas para interacciones con la base de datos.
- Las bases de datos pueden ser interaccionadas mediante herramientas como Tinker (CLI de Laravel) para realizar pruebas y consultas rápidas.
Rutas y Middleware
- Las rutas se definen en archivos como
routes/web.php
oroutes/api.php
para APIs. - Soporta métodos HTTP como GET, POST, PUT y DELETE.
- Las rutas se pueden agrupar y prefijar usando
Route::group()
. - Se pueden crear rutas dinámicas con parámetros en la URL, por ejemplo,
/usuarios/{id}
. - Se pueden asignar nombres a las rutas para redireccionamientos y enlaces, como
Route::get('/usuarios', 'UserController@index')->name('usuarios.index');
. - El middleware se utiliza como filtro que se ejecuta antes o después de una solicitud.
- Se pueden usar para autenticar usuarios, gestionar sesiones, etc.
- El middleware se puede asignar a rutas específicas o grupos de rutas.
- Se puede crear middleware personalizado con
php artisan make:middleware
. - El middleware debe registrarse en
app/Http/Kernel.php
.
Controladores y Modelos
- Los controladores son clases que manejan la lógica y las operaciones de las solicitudes.
- Se pueden crear con
php artisan make:controller
. - Hay controladores de recursos que gestionan las operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
- Se pueden inyectar dependencias en controladores para una mejor gestión.
- Los controladores pueden usar métodos de retorno como
view()
,redirect()
yjson()
. - Los modelos representan las tablas en la base de datos.
- Se pueden crear con
php artisan make:model
. - Utilizan Eloquent ORM para interacciones con la base de datos.
- Soporta relaciones como uno a muchos, muchos a uno y muchos a muchos.
- Se pueden definir atributos protegidos y accesores/mutadores.
Migraciones y Bases de Datos
- Las migraciones permiten versionar la estructura de la base de datos.
- Se crean con
php artisan make:migration
. - Se definen en la clase de migración las columnas y tipos de datos.
- Algunos comandos útiles:
-
php artisan migrate
: ejecuta todas las migraciones pendientes. -
php artisan migrate:rollback
: revierte la última migración. -
php artisan migrate:refresh
: revierte y vuelve a ejecutar todas las migraciones.
-
- Laravel soporta múltiples bases de datos como MySQL, SQLite, PostgreSQL, etc.
- La configuración de la base de datos se realiza en el archivo
.env
(DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, etc.). - Se puede utilizar Eloquent ORM o el constructor de consultas para interacciones con la base de datos.
- Se puede usar Tinker (CLI de Laravel) para pruebas y consultas rápidas a la base de datos.
Migraciones y Bases de Datos
- Las migraciones son herramientas en Laravel para versionar la base de datos. Facilitan la creación y modificación de tablas.
- Para crear una migración se utiliza el comando:
php artisan make:migration
- Para ejecutar las migraciones se usa:
php artisan migrate
- La clase
Schema
se usa para definir las tablas y columnas. - Laravel ofrece soporte para varias bases de datos, como MySQL, SQLite y PostgreSQL.
- La configuración de la base de datos se realiza en el archivo
config/database.php
.
Controladores y Modelos
- Los controladores son clases que manejan las solicitudes y respuestas del usuario.
- Se pueden organizar en controladores de recursos, que agrupan acciones relacionadas.
- Se crea un controlador con
php artisan make:controller NombreController
. - Los modelos representan las tablas de la base de datos.
- Se relacionan con Eloquent ORM, un sistema de objetos relacionales.
- Se crea un modelo con
php artisan make:model NombreModelo
. - Las relaciones (one-to-one, one-to-many, many-to-many) definen cómo los modelos interactúan entre sí.
Instalación
- Para instalar Laravel se necesitan: PHP, Composer y un servidor web (Apache/Nginx).
- La instalación se lleva a cabo con Composer:
composer create-project --prefer-dist laravel/laravel nombre-del-proyecto
. - El archivo
.env
se configura para conectar la base de datos y otras configuraciones. - Se inicia el servidor de desarrollo con
php artisan serve
.
Buenas Prácticas
- El código se organiza en carpetas y archivos coherentes, como controladores, modelos y rutas.
- Se utiliza el sistema de rutas de forma correcta, con
web.php
yapi.php
. - Se implementan validaciones en las solicitudes.
- Se mantiene el código limpio y documentado.
- Se usan las migraciones para controlar los esquemas y las pruebas antes de realizar cambios en la base de datos en producción.
CRUD
- CRUD (Crear, Leer, Actualizar, Eliminar) son las operaciones básicas en cualquier aplicación.
- Los controladores de recursos pueden generar métodos automáticamente para CRUD:
php artisan make:controller NombreController --resource
. - Se implementan funciones para manejar cada operación con los modelos Eloquent.
API Resources
- Los API Resources facilitan la transformación de modelos y colecciones en respuestas JSON.
- Se crea un recurso con
php artisan make:resource NombreRecurso
. - Permiten definir la estructura de la salida de los datos.
API REST
- Los principios de API REST incluyen el uso de HTTP, con métodos como GET, POST, PUT y DELETE.
- Los endpoints deben ser claros y coherentes.
- Las respuestas deben ser adecuadas con códigos de estado HTTP (200, 201, 404, 500).
- Para implementar una API REST en Laravel:
- Se definen rutas para la API en
routes/api.php
. - Se utilizan controladores que respondan a las solicitudes API.
- Se usan recursos de Laravel para formatear respuestas JSON.
- Se definen rutas para la API en
Laravel 11: Introducción
- Laravel es un framework PHP de código abierto que se utiliza para crear aplicaciones web.
- Laravel 11 es la última versión estable al momento de escribir estas notas.
Instalación y Configuración
- Para instalar Laravel 11 se necesita Composer.
- Se puede instalar utilizando el comando
composer create-project laravel/laravel mi-proyecto
- Laravel se configura a través de un archivo .env en la raíz del proyecto.
- El archivo .env contiene variables de entorno para la aplicación, como las credenciales de la base de datos.
Operaciones CRUD (Create, Read, Update, Delete)
- Laravel proporciona herramientas para crear, leer, actualizar y eliminar datos de forma eficiente.
- Los controladores son la base de las operaciones CRUD.
- Se recomienda el uso del comando
php artisan make:controller NombreControlador --resource
para crear controladores que usen API Resources.
API Resources
- Los API Resources permiten formatear la salida de la API de manera consistente.
- Se crean con el comando
php artisan make:resource NombreRecurso
. - El objeto
Resource
se utiliza para definir la estructura de la respuesta JSON.
Estructura de Carpetas
- Laravel tiene una estructura de carpetas bien definida para organizar el código.
- La carpeta
app
contiene el código principal de la aplicación. - La carpeta
config
contiene los archivos de configuración de la aplicación. - La carpeta
database
contiene el código relacionado con la base de datos. - La carpeta
public
contiene los archivos públicos accesibles desde el navegador. - La carpeta
storage
contiene archivos que no son accesibles directamente por el usuario.
Uso de public
, storage
y la función asset
- La carpeta
public
contiene archivos estáticos, como CSS, JavaScript e imágenes. - La carpeta
storage
contiene archivos que se almacenan en el servidor, puede dividirse enapp
yframework
. - La función
asset
se utiliza para generar URLs a archivos dentro de la carpetapublic
.
Directivas y Buenas Prácticas con Blade
- Blade es el motor de plantillas de Laravel.
- Las directivas se usan para controlar el flujo de ejecución del código.
- Las directivas
@if
,@else
,@endif
,@foreach
,@endforeach
son algunas de las más utilizadas. - Las buenas prácticas con Blade incluyen usar componentes para reutilizar código y mantener el HTML limpio.
Lo Básico de Eloquent
- Eloquent es el ORM (Object Relational Mapper) de Laravel.
- Permite interactuar con la base de datos utilizando objetos.
- Se puede acceder a los datos usando el método
Model::all()
yModel::find(id)
.
Migraciones
- Las migraciones se usan para crear y actualizar la base de datos.
- Se crean con el comando
php artisan make:migration NombreMigración
. - Se ejecutan con el comando
php artisan migrate
.
Rutas
- La configuración de las rutas para la aplicación se encuentra en el archivo
routes/web.php
. - Las rutas definen las URLs que se pueden acceder en la aplicación y las acciones que se ejecutan.
- Se definen mediante el código
Route::get('/ruta', 'controlador@método');
.
Comandos de Artisan Útiles
-
Artisan es la línea de comandos de Laravel.
-
Algunos comandos útiles son:
-
php artisan make:controller
-
php artisan make:model
-
php artisan serve
-
php artisan migrate
-
php artisan db:seed
-
php artisan cache:clear
-
php artisan config:cache
-
php artisan route:list
-
php artisan queue:work
-
-
Estos comandos ayudan a automatizar tareas comunes en el desarrollo de la aplicación.
Comandos Básicos de Artisan
-
php artisan list
: Muestra una lista completa de los comandos disponibles para uso en la aplicación. -
php artisan help [comando]
: Proporciona información detallada sobre un comando específico, incluyendo sus opciones y argumentos. -
php artisan make:[tipo] [nombre]
: Crea nuevos archivos para diferentes componentes de la aplicación, como controladores, modelos, etc. Utiliza el tipo 'tipo' para especificar el tipo de componente que se va a crear.
Comandos Útiles para Desarrollo
-
php artisan serve
: Inicia un servidor web de desarrollo local que permite probar la aplicación en tiempo real. -
php artisan migrate
: Aplica todas las migraciones pendientes a la base de datos, creando las tablas y estructuras que se necesitan. -
php artisan db:seed
: Inserta datos iniciales en la base de datos, útiles para probar la aplicación o para un desarrollo rápido. -
php artisan tinker
: Proporciona un entorno interactivo para probar código de la aplicación o interactuar con la base de datos.
Gestión de Migraciones
-
php artisan migrate
: Ejecuta las migraciones pendientes de la base de datos, aplicando los cambios a la estructura de las tablas. -
php artisan migrate:rollback
: Deshace la última migración aplicada a la base de datos, retornando a la estructura anterior. -
php artisan migrate:status
: Muestra el estado de las migraciones de la base de datos, indicando qué migraciones se han aplicado y cuáles no. -
php artisan make:migration
: Crea una nueva migración, que se puede utilizar para realizar cambios en la estructura de la base de datos. Se le puede dar un nombre a la migración para fines organizativos.
Ejecución de Trabajos en Segundo Plano
-
php artisan queue:work
: Procesa trabajos en cola de la aplicación, ejecutando tareas de forma asíncrona para no bloquear el flujo principal de la aplicación. -
php artisan queue:listen
: Escucha eventos en cola de forma persistente, ejecutando trabajos en tiempo real a medida que llegan. -
php artisan queue:table
: Crea una tabla en la base de datos para almacenar los trabajos en cola, permitiendo una gestión eficiente de los mismos.
Optimización de Rendimiento con Artisan
-
php artisan config:cache
: Almacena en caché la configuración de la aplicación, lo que puede mejorar significativamente el rendimiento, especialmente al cargar la aplicación. -
php artisan route:cache
: Crea una caché de todas las rutas de la aplicación, lo que acelera el proceso de enrutamiento de las solicitudes. -
php artisan view:cache
: Compila las vistas y las almacena en caché, mejorando la velocidad de carga de las páginas web. -
php artisan optimize
: Aplica una serie de optimizaciones generales a la aplicación, mejorando su rendimiento general.
Generación de Recursos
- La creación de recursos en una API se refiere al proceso de generar nuevos elementos dentro del sistema.
- Los métodos HTTP más utilizados para este propósito son:
- POST: Para crear nuevos recursos.
- PUT: Para actualizar o crear recursos en una URL específica.
- Los principios RESTful enfatizan el uso de sustantivos para designar recursos y evitar la inclusión de acciones en los puntos finales.
Transformación de Datos
- La transformación de datos es esencial para convertir la información entre diferentes formatos, garantizando la coherencia entre el cliente y el servidor.
- Algunas transformaciones comunes son:
- Serialización: Convertir objetos en formatos como JSON o XML.
- Deserialización: Convertir datos de JSON/XML a objetos.
- Se utilizan bibliotecas como
Jackson
,Gson
en Java oDjango REST Framework
en Python para facilitar la transformación de datos.
Recursos de Colección
- Un recurso de colección representa un conjunto de recursos relacionados.
- Las operaciones comunes en recursos de colección incluyen:
- GET /recursos: Obtener una lista de todos los recursos.
- POST /recursos: Añadir un nuevo recurso a la colección.
- Es importante implementar estrategias de paginación, como
limit
yoffset
, para manejar conjuntos de datos de gran tamaño.
Manejo de Validación
- La validación de datos entrantes es crucial para garantizar que cumple con las reglas especificadas antes de procesarlo.
- Existen técnicas comunes de validación:
-
Validación de Esquema: Utilizar bibliotecas para definir y validar formatos de datos (e.g.,
AJV
para JSON). - Validación Manual: Implementar lógica personalizada para verificar la integridad de los datos y las reglas comerciales.
-
Validación de Esquema: Utilizar bibliotecas para definir y validar formatos de datos (e.g.,
- Al manejar errores, es fundamental devolver códigos de error y mensajes apropiados (e.g., 400 Bad Request).
Versionamiento de API
- El versionamiento de API gestiona los cambios y actualizaciones de la API, asegurando la compatibilidad hacia atrás.
- Las estrategias comunes de versionamiento incluyen:
-
Versionamiento de URI: Incluir el número de versión en la URL (e.g.,
/v1/recurso
). -
Versionamiento de Encabezados: Especificar la versión a través de encabezados HTTP (e.g.,
Accept: application/vnd.yourapi.v1+json
). -
Versionamiento de Parámetro de Consulta: Utilizar parámetros de consulta para la versionamiento (e.g.,
/recurso?version=1
).
-
Versionamiento de URI: Incluir el número de versión en la URL (e.g.,
- Es importante mantener una documentación clara para cada versión y administrar las características obsoletas de manera efectiva.
Reglas de Validación
- Las reglas de validación aseguran que la información entrante cumple con los criterios específicos antes del procesamiento.
- Algunos ejemplos son: "required" (obligatorio), "email" (correo electrónico), "max" (longitud máxima), "unique" (único).
- Se pueden combinar reglas usando la barra vertical (
|
), por ejemplo:required|email|max:255
.
Ciclo de Vida de las Peticiones
- Las FormRequests desencadenan un ciclo de vida específico durante las solicitudes HTTP:
- Recepción de la Solicitud: la solicitud es iniciada por el cliente.
- Validación de la Entrada: FormRequest valida la información de la solicitud entrante basada en las reglas establecidas.
- Manejo de Errores de Validación: Si hay errores de validación, se genera una respuesta de error.
- Procesamiento de Datos Válidos: si la validación es exitosa, la solicitud es procesada, típicamente por un controlador.
Validación Personalizada
- Se pueden crear reglas de validación personalizadas para necesidades específicas:
- Implementar un objeto
Rule
para una lógica de validación compleja. - Usar el método
Validator::extend
para agregar nuevas reglas. - Ejemplo: Definir una regla de validación única para verificar una combinación de campos.
- Implementar un objeto
Manejo de Errores
- FormRequests proveen un manejo de errores automático para fallos en la validación.
- Los errores pueden ser retornados como respuestas JSON para solicitudes API.
- Los mensajes de error pueden ser personalizados al sobreescribir el método
messages()
en la clase FormRequest. - El método
failedValidation()
puede ser sobrescrito para estrategias personalizadas de manejo de errores.
Procesamiento de Datos del Formulario
- La información validada se accede a través del método
validated()
dentro de la clase FormRequest. - Usar el método
all()
para recuperar toda la información de entrada, incluyendo la no validada. - La información se puede transformar antes del procesamiento mediante el método
prepareForValidation()
. - Se utiliza típicamente en controladores para crear, actualizar, o eliminar recursos basados en la información validada.
FormRequests en Laravel 11
-
FormRequest: Este es una clase que extiende
Illuminate\Foundation\Http\FormRequest
para manejar la validación de datos de entrada en Laravel 11.
Validación De Datos
-
Métodos Clave:
-
authorize()
: Determina si el usuario tiene la autorización para realizar la solicitud. -
rules()
: Devuelve un array con las reglas de validación que se aplican a los datos de la solicitud.
-
-
Ejemplo de las Reglas de Validación:
- Las reglas se definen como un arreglo asociativo donde la clave es el nombre del campo y el valor es la regla de validación.
- Por ejemplo:
-
'name' => 'required|string|max:255'
valida que el camponame
sea requerido, que sea un string y que tenga un máximo de 255 caracteres. -
'email' => 'required|email|unique:users,email'
valida queemail
sea un valor requerido, que sea un email válido y que sea único en la tablausers
.
-
Personalización De Mensajes De Error
- Mensajes Personalizados: Los mensajes de error que se muestran al usuarion se pueden personalizar.
-
Método
messages()
: Se usa para definir mensajes personalizados para las reglas de validación. -
Ejemplo:
-
'name.required' => 'El nombre es obligatorio.'
crea un mensaje personalizado para la reglarequired
del camponame
.
-
Integración Con Controladores
- Uso en Controladores: Las instancias de FormRequest se pueden inyectar directamente en los métodos de los controladores.
-
Ejemplo:
-
public function store(MyFormRequest $request) { ... }
inyecta una instancia de la claseMyFormRequest
en el métodostore
.
-
Uso De Reglas De Validación
-
Reglas Comunes:
-
required
: El campo es obligatorio. -
string
: El campo debe ser un string. -
email
: El campo debe ser un correo electrónico válido. -
unique
: El campo debe ser único en la tabla de la base de datos. -
min
,max
: Define la longitud mínima y máxima permitida. -
confirmed
: Se utiliza para campos de confirmación como contraseñas, asegurando que coincidan.
-
-
Reglas Condicionales: Se pueden usar reglas condicionales para validar según una condición especifica, por ejemplo, si un campo se cumple, se validará un tercer campo con una condición especifica.
Herencia de Plantillas
- Permite crear un diseño base que se puede reutilizar en múltiples vistas.
- Define una plantilla base usando
@yield
para crear secciones. - Extiende la plantilla base en las vistas hijas con
@extends
y rellena las secciones con@section
.
Enlace de Datos
- Vincula datos desde controladores directamente a las vistas Blade.
- Usa corchetes para mostrar variables:
{{ $variable }}
. - Escapa los caracteres HTML por defecto. Usa
{!!$variable !!}
para mostrar HTML sin procesar.
Componentes y Slots
- Componentes: Bloques de interfaz de usuario reutilizables encapsulados en una clase.
-
Creando Componentes:
- Usa el comando Artisan:
php artisan make:component ComponentName
. - Define la lógica de renderizado en la clase del componente y el diseño en la vista Blade.
- Usa el comando Artisan:
-
Slots: Usados para crear componentes flexibles:
- Define slots con
- Usa componentes como:
- Define slots con
Estructuras de Control
-
Sentencias Condicionales: Usa
@if
,@elseif
,@else
,@unless
-
Bucles: Usa
@foreach
,@for
,@while
y@forelse
.
Localización
- Permite traducir aplicaciones y formatear fechas, números, etc. según la configuración regional del usuario.
-
Configuración:
- Almacena los archivos de idioma en
resources/lang/{locale}/messages.php
. - Usa las funciones
trans()
o__()
para recuperar traducciones.
- Almacena los archivos de idioma en
- Localización de Fecha y Número: Usa las características de localización de Laravel para formatear en base a la configuración regional del usuario.
Directivas Blade en Laravel 11
-
@section: Define secciones de contenido en vistas que pueden ser sobreescritas por vistas hijas.
- Se utiliza en vistas que extienden un layout principal.
- Sintaxis:
@section('nombre_seccion') contenido @endsection
-
@foreach: Permite iterar sobre colecciones o arrays.
- Ideal para mostrar listas de datos, como elementos de una base de datos.
- Sintaxis:
@foreach ($coleccion as $elemento) // Contenido @endforeach
-
@include: Incluye una vista dentro de otra.
- Facilita la reutilización de código y la organización de componentes.
- Sintaxis:
@include('nombre.vista', ['variable' => $valor])
-
@extends: Indica que una vista hija hereda de un layout (vista padre).
- Debe ser la primera directiva en la vista.
- Se combina con
@section
para definir contenido específico. - Sintaxis:
@extends('nombre.layout')
FormRequest en Laravel 11
- FormRequest: Facilita la gestión de solicitudes de formulario en Laravel 11.
-
Inyección de dependencias: Permite inyectar automáticamente dependencias en los controladores.
- Crea una clase que extienda
Illuminate\Foundation\Http\FormRequest
. - Define la lógica de validación y servicios dentro de la clase.
- Utilice la clase FormRequest como tipo de argumento en los métodos del controlador.
- Crea una clase que extienda
-
Reglas de validación: Se definen en el método
rules()
de la clase FormRequest.-
required
: Campo obligatorio. -
string
: Debe ser una cadena de texto. -
email
: Debe ser un correo electrónico válido. -
unique
: Verifica si el valor es único en la base de datos. - Permite reglas personalizadas para validaciones complejas.
-
-
Validación de datos: Se realiza automáticamente al recibir una solicitud con un FormRequest.
- Redirecciona al usuario a la página anterior con mensajes de error en caso de error.
- Personalice los mensajes de error con el método
messages()
en FormRequest.
-
Gestión de errores: Laravel gestiona los errores automáticamente con mensajes en las sesiones.
- Los errores se pueden acceder en las vistas usando
@error('campo')
. - Permite personalizar la gestión de errores mediante métodos o la configuración
validation.php
. - Ejemplo práctico: usar
->withErrors($errors)
para redirigir los errores a vistas personalizadas. - Integrar la validación con AJAX para una mejor experiencia de usuario.
- Los errores se pueden acceder en las vistas usando
Controladores en Rutas
- Los controladores en Laravel se encargan de gestionar la lógica de la aplicación, procesando peticiones y generando respuestas.
- Se pueden asignar controladores a rutas utilizando la notación de array o el nombre de la clase del controlador.
- Ejemplo con la notación de array:
Route::get('/usuario', [UsuarioController::class, 'index']);
- Ejemplo con la notación de array:
- Los métodos dentro del controlador son responsables de manejar las peticiones y devolver respuestas.
- Un método
index
en elUsuarioController
podría gestionar la peticiónGET /usuario
.
- Un método
- Los recursos RESTful, como
Route::resource('usuarios', UsuarioController::class);
, simplifican la creación de rutas para recursos.- Automáticamente se crean rutas para acciones comunes como
index
,show
,create
,store
,edit
,update
, ydestroy
.
- Automáticamente se crean rutas para acciones comunes como
Rutas Estáticas
- Las rutas estáticas son definidas de manera fija y no cambian durante la ejecución de la aplicación.
- Se definen con el método HTTP correspondiente (GET, POST, etc.)
- Ejemplo:
Route::get('/acerca', [PaginaController::class, 'acerca']);
- Ejemplo:
- Útiles para secciones con contenido estático o páginas informativas.
Rutas Dinámicas
- Las rutas dinámicas, a diferencia de las estáticas, aceptan variables en la URL, adaptándose al tráfico de la aplicación.
- Se definen utilizando "placeholders" que representan las variables.
- Ejemplo:
Route::get('/usuario/{id}', [UsuarioController::class, 'mostrar']);
- Ejemplo:
- Las variables en la URL pueden ser opcionales.
- Ejemplo:
Route::get('/usuario/{id?}', [UsuarioController::class, 'mostrar']);
- Ejemplo:
Métodos HTTP
- Laravel soporta todos los métodos HTTP estándar:
- GET: Para recuperar datos.
- POST: Para enviar datos al servidor.
- PUT: Para actualizar completamente un recurso específico.
- PATCH: Para actualizar parcialmente un recurso específico.
- DELETE: Para eliminar un recurso.
- Ejemplo:
Route::get('/productos', [ProductoController::class, 'index']); Route::post('/productos', [ProductoController::class, 'store']); Route::put('/productos/{id}', [ProductoController::class, 'update']); Route::delete('/productos/{id}', [ProductoController::class, 'destroy']);
- Cada método HTTP (GET, POST, PUT, PATCH, DELETE) se usa para realizar una acción específica en los recursos web.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Este cuestionario evalúa tus conocimientos sobre las rutas y middleware en Laravel. Incluye temas como la creación de rutas, métodos HTTP y la implementación de middleware personalizado. Además, se exploren conceptos de controladores y modelos necesarios para la gestión de solicitudes.