Practica Laravel Flashcards

1
Q

Que es Mvc?

A

El patrón MVC significa Modelo-Vista-Controlador. Es un patrón de diseño de software que separa los datos de una aplicación, la interfaz de usuario y la lógica de control en tres componentes distintos. El Modelo se encarga de la capa de datos y su estructuración; la Vista es la capa de presentación, donde se maneja todo lo relacionado a la interfaz de usuario; y el Controlador es la capa de control que maneja la interacción entre el Modelo y la Vista.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué métodos HTTP conoces y cuáles son los más utilizados en Laravel?

A

El protocolo HTTP es un conjunto de reglas que permiten la comunicación entre el navegador y el servidor web. Cuando escribes una dirección web en tu navegador y se abre la página que deseas, es porque tu navegador se ha comunicado con el servidor web por HTTP. Dicho de otra manera, el protocolo HTTP es el código o lenguaje en el que el navegador le comunica al servidor qué página quiere visualizar.
El funcionamiento del HTTP se basa en un esquema de petición-respuesta entre el servidor web y el cliente que realiza la solicitud de transmisión de datos.
GET: se utiliza para solicitar información del servidor. El método GET se utiliza para enviar solicitudes de lectura de recursos a través de la URL. En Laravel, este método es muy utilizado para consultar información de la base de datos y mostrarla en la vista.

POST: se utiliza para enviar información nueva o actualizar información existente en el servidor. El método POST se utiliza para enviar información a través del cuerpo de la solicitud. En Laravel, este método es muy utilizado para insertar datos en la base de datos a través de formularios.

PUT: se utiliza para actualizar información existente en el servidor. El método PUT se utiliza para enviar información a través del cuerpo de la solicitud. En Laravel, este método es muy utilizado para actualizar información en la base de datos a través de formularios.

DELETE: se utiliza para eliminar información del servidor. El método DELETE se utiliza para enviar solicitudes de eliminación de recursos a través de la URL. En Laravel, este método es muy utilizado para eliminar información de la base de datos.

PATCH: se utiliza para actualizar información parcial en el servidor. El método PATCH se utiliza para enviar información a través del cuerpo de la solicitud. En Laravel, este método es muy utilizado para actualizar información parcial en la base de datos a través de formularios.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cómo manejas las dependencias en tu proyecto de Laravel?

A

En mis proyectos de Laravel, suelo utilizar Composer como gestor de paquetes. Utilizo el archivo composer.json para especificar las dependencias del proyecto y sus versiones. También suelo utilizar el archivo .env para almacenar las credenciales de la base de datos, ya que esto evita que se incluyan en el repositorio de código.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cómo aseguras la seguridad de tus aplicaciones Laravel?

A

Para asegurar la seguridad en mis aplicaciones Laravel, utilizo medidas como la validación de datos, autenticación de usuarios, encriptación de contraseñas y protección contra ataques CSRF y XSS. También suelo utilizar la autenticación de dos factores para aumentar la seguridad en las cuentas de usuario”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuál es el propósito de los comandos Artisan en Laravel?

A

Generar código: Laravel proporciona un conjunto de comandos Artisan para generar código automáticamente, incluyendo modelos, controladores, vistas, migraciones, semillas de base de datos, pruebas, etc.

Manejar bases de datos: con Artisan, se pueden crear, actualizar y eliminar tablas de base de datos, ejecutar migraciones, hacer rollback a migraciones, ejecutar semillas de base de datos, entre otras tareas relacionadas con la base de datos.

Hacer pruebas: Artisan proporciona una serie de comandos para automatizar el proceso de pruebas, incluyendo la ejecución de pruebas unitarias, pruebas de integración, pruebas de características y pruebas de navegador.

Limpiar caché: Artisan también proporciona comandos para limpiar la caché de la aplicación, la caché de configuración, la caché de rutas, la caché de vistas, entre otras.

En general, los comandos Artisan en Laravel son una herramienta muy útil para simplificar y automatizar tareas durante el desarrollo de una aplicación web en Laravel. Además, Artisan es altamente personalizable y se pueden crear comandos personalizados para realizar tareas específicas de la aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo manejas la migración de bases de datos y versionamiento de los modelos en Laravel?

A

Migración de bases de datos:

Las migraciones son una herramienta en Laravel que permiten manipular la estructura de la base de datos a través de código en lugar de SQL. Para crear una migración, se utiliza el comando php artisan make:migration. En la migración, se define qué cambios se harán en la base de datos, como la creación de tablas, la eliminación de columnas, la adición de índices, etc.

Una vez que se ha creado la migración, se puede ejecutar con el comando php artisan migrate. Si necesitas hacer rollback a la última migración, puedes utilizar el comando php artisan migrate:rollback. Laravel también proporciona otras opciones para ejecutar migraciones, como ejecutar migraciones específicas o ejecutar todas las migraciones pendientes.

Versionamiento de modelos:

El versionamiento de modelos se refiere a la gestión de cambios en los modelos de la aplicación. En Laravel, es común utilizar el patrón de diseño ActiveRecord, donde cada modelo representa una tabla en la base de datos.

Para manejar el versionamiento de modelos, se pueden crear nuevas migraciones que modifiquen la estructura de las tablas en la base de datos, y luego actualizar los modelos correspondientes para reflejar los cambios. Por ejemplo, si se desea agregar una nueva columna a una tabla, se puede crear una migración para agregar la columna y luego actualizar el modelo correspondiente para incluir la nueva propiedad.

Laravel también proporciona una característica llamada “modelos semilla” (seeder), que permite generar datos iniciales en la base de datos para hacer pruebas y configuraciones iniciales. Los modelos semilla se pueden crear utilizando el comando php artisan make:seeder y luego ejecutándolos con el comando php artisan db:seed.

En resumen, el manejo de migración de bases de datos y versionamiento de modelos en Laravel es una tarea crítica para mantener una base de datos organizada y actualizada de manera efectiva. Laravel proporciona herramientas poderosas para manejar ambas tareas, lo que simplifica el proceso y hace que sea más fácil mantener la integridad de la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué son los seeders y cómo se utilizan en Laravel? Proporcione un ejemplo de cómo crear un seeder para llenar una tabla de base de datos específica con datos predefinidos.

A

Los seeders en Laravel son archivos que se utilizan para llenar la base de datos con datos predefinidos. Se pueden utilizar para llenar tablas específicas con datos necesarios para probar la funcionalidad de una aplicación, por ejemplo. Para crear un seeder en Laravel, se puede utilizar el comando php artisan make:seeder y proporcionar un nombre para el seeder. Luego, se puede utilizar el método run() del seeder para llenar la tabla correspondiente con los datos predefinidos. Por ejemplo, si se quisiera llenar la tabla de usuarios con datos predefinidos, se podría crear un seeder llamado UsersTableSeeder y utilizar el método DB::table(‘users’)->insert() dentro del método run() para insertar los datos. Finalmente, se podría utilizar el comando php artisan db:seed para ejecutar todos los seeders registrados en la aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué son los factories y cómo se utilizan en Laravel? Proporcione un ejemplo de cómo definir y utilizar un factory para generar datos ficticios para un modelo de la aplicación. ¿Cómo se puede utilizar un factory en conjunto con un seeder para llenar la base de datos con datos ficticios de forma programática?

A

Los factories en Laravel son clases que se utilizan para generar datos ficticios para modelos específicos de la aplicación. Se pueden utilizar para crear datos de prueba o llenar la base de datos con datos ficticios de forma programática. Para definir un factory en Laravel, se puede utilizar el comando php artisan make:factory y proporcionar el nombre del modelo correspondiente. Luego, se puede utilizar la clase Factory de Laravel para definir cómo se deben generar los datos ficticios para el modelo. Por ejemplo, si se quisiera definir un factory para el modelo User, se podría crear un archivo llamado UserFactory.php y utilizar el método define() de la clase Factory para definir los atributos del modelo. Para utilizar el factory en una prueba, se puede utilizar el método factory() de Laravel para crear instancias del modelo con datos ficticios. Para llenar la base de datos con datos ficticios de forma programática, se puede utilizar un seeder que llame al factory para crear y guardar instancias del modelo en la base de datos. Por ejemplo, se podría utilizar el método factory()->times() para generar un número específico de instancias del modelo y el método create() para guardarlos en la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

que son los middleware en laravel?

A

Los Middleware en Laravel son una capa intermedia entre las solicitudes HTTP que llegan a nuestra aplicación y las respuestas que enviamos a los clientes. Básicamente, los Middleware actúan como filtros que procesan las solicitudes antes de que lleguen a su destino final (ya sea una vista o una respuesta JSON, por ejemplo).

Los Middleware en Laravel se pueden utilizar para una amplia variedad de tareas, incluyendo la autenticación, la validación de formularios, el manejo de excepciones, la gestión de sesiones y la gestión de caché, entre otros. Por ejemplo, si queremos asegurarnos de que un usuario esté autenticado antes de permitirle acceder a una página determinada, podemos utilizar un Middleware que compruebe si el usuario está autenticado antes de permitir que la solicitud continúe.

Laravel proporciona una serie de Middleware integrados, como el Middleware de autenticación y el Middleware de sesión. Además, los desarrolladores de Laravel pueden crear sus propios Middleware personalizados para realizar tareas específicas según sus necesidades.

En resumen, los Middleware en Laravel son una herramienta poderosa que permite a los desarrolladores procesar y filtrar solicitudes HTTP antes de que lleguen a su destino final, lo que permite implementar una amplia variedad de tareas en nuestra aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se manejan las relaciones entre modelos en Laravel?

A

En Laravel, las relaciones entre modelos se manejan mediante el uso de métodos y propiedades en los modelos de Eloquent, el ORM integrado de Laravel. Eloquent proporciona una serie de métodos para definir y utilizar diferentes tipos de relaciones, incluyendo:

Relación Uno a Uno: En una relación uno a uno, cada registro en una tabla está asociado con un solo registro en otra tabla. Para definir una relación uno a uno en Laravel, podemos utilizar el método hasOne() en el modelo principal y el método belongsTo() en el modelo secundario.

Relación Uno a Muchos: En una relación uno a muchos, un registro en una tabla está asociado con varios registros en otra tabla. Para definir una relación uno a muchos en Laravel, podemos utilizar el método hasMany() en el modelo principal y el método belongsTo() en el modelo secundario.

Relación Muchos a Muchos: En una relación muchos a muchos, varios registros en una tabla están asociados con varios registros en otra tabla. Para definir una relación muchos a muchos en Laravel, podemos utilizar el método belongsToMany() en ambos modelos.

Relación Uno a Uno Polimórfica: En una relación uno a uno polimórfica, un modelo puede estar asociado con uno de varios modelos diferentes. Para definir una relación uno a uno polimórfica en Laravel, podemos utilizar los métodos morphOne() y morphTo().

Relación Uno a Muchos Polimórfica: En una relación uno a muchos polimórfica, un modelo puede estar asociado con varios modelos diferentes. Para definir una relación uno a muchos polimórfica en Laravel, podemos utilizar los métodos morphMany() y morphTo().

Laravel también proporciona una serie de métodos para trabajar con las relaciones entre modelos, como with() para cargar relaciones en una consulta, save() y create() para crear y guardar nuevos modelos relacionados, y attach() y detach() para agregar y eliminar relaciones existentes.

En resumen, las relaciones entre modelos en Laravel se manejan mediante el uso de métodos y propiedades en los modelos de Eloquent, lo que permite definir y utilizar diferentes tipos de relaciones en nuestra aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué son los accesores y mutadores en Laravel y cuál es su propósito?

A

Los accesores y mutadores en Laravel son métodos utilizados para acceder y modificar los atributos de un modelo antes de que sean obtenidos o guardados en la base de datos. Los accesores permiten obtener valores modificados de los atributos, mientras que los mutadores permiten modificar los valores antes de ser almacenados en la base de datos.
La diferencia principal entre un accesor y un mutador radica en su uso. Los accesores se utilizan para obtener valores modificados de los atributos, mientras que los mutadores se utilizan para modificar los valores antes de ser almacenados en la base de datos. Por lo tanto, los accesores se utilizan principalmente en la lectura de datos, mientras que los mutadores se utilizan en la escritura de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

que es un resource en laravel?

A

En Laravel, un resource (recurso) es una clase que se utiliza para transformar los datos de un modelo o colección de modelos en un formato determinado, como JSON o XML, para ser devueltos como respuesta en una API o en una vista.

La idea detrás de los resources es proporcionar una forma de encapsular la lógica de transformación de datos en una clase separada y reutilizable, en lugar de tener que codificarla en cada controlador o vista.

Los resources en Laravel pueden personalizarse para incluir o excluir campos específicos, renombrar campos, agregar campos calculados y mucho más. También se pueden utilizar para manejar relaciones entre modelos y proporcionar una estructura de respuesta consistente en toda la aplicación.

En resumen, los resources son una herramienta útil en Laravel para estructurar y transformar datos de modelos para su uso en vistas y API.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es Eloquent en Laravel y cómo se usa para interactuar con bases de datos?

A

Eloquent es el ORM (Mapeo Objeto-Relacional) de Laravel, que permite interactuar con la base de datos utilizando objetos y métodos en lugar de sentencias SQL directas. Se usa en Laravel llamando al modelo correspondiente y utilizando métodos como find(), where(), create(), entre otros, para realizar operaciones en la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué son las facades en Laravel y cómo se utilizan en una aplicación?

A

Las facades en Laravel son una forma de acceder a una instancia de una clase a través de una interfaz estática, lo que simplifica el acceso a clases complejas en toda la aplicación. Se utilizan llamando al nombre de la facade como si fuera una clase estática, como DB::table(‘users’)->get() para acceder a la tabla “users” en la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cuál es la diferencia entre una facade y una instancia de una clase en Laravel?

A

En Laravel, una Facade es una clase que proporciona una interfaz estática a un objeto en tiempo de ejecución, mientras que una instancia de una clase es una copia única de esa clase que se crea y almacena en memoria durante la ejecución del programa.

La principal diferencia entre una Facade y una instancia de una clase es que una Facade proporciona una interfaz estática y conveniente a un objeto, mientras que una instancia de una clase proporciona una referencia directa a un objeto. Las Facades se utilizan para acceder a una instancia de una clase que se encuentra en el contenedor de servicios de Laravel, lo que significa que pueden ser utilizadas en cualquier lugar de la aplicación sin necesidad de pasar manualmente la instancia de la clase como argumento de método.

Otra diferencia importante es que una Facade no es una instancia real de la clase que representa, sino simplemente una envoltura alrededor de ella. Cuando se llama a un método en una Facade, en realidad se está llamando al método en una instancia de la clase que se encuentra en el contenedor de servicios de Laravel.

En resumen, una Facade es una clase que proporciona una interfaz estática a un objeto en tiempo de ejecución, mientras que una instancia de una clase es una copia única de esa clase que se crea y almacena en memoria durante la ejecución del programa. Las Facades se utilizan para acceder a una instancia de una clase que se encuentra en el contenedor de servicios de Laravel de manera conveniente y eficiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Ejemplos de CLases y Objetos en Laravel

A

Clase: Illuminate\Http\Request
Objeto: $request = request()

En este ejemplo, Illuminate\Http\Request es una clase que se utiliza para representar la solicitud HTTP entrante en Laravel. La función request() devuelve un objeto de esta clase que puede ser utilizado para obtener información sobre la solicitud.

Clase: Illuminate\Support\Facades\DB
Objeto: $users = DB::table('users')->get()

En este ejemplo, Illuminate\Support\Facades\DB es una clase que se utiliza para interactuar con la base de datos en Laravel. DB es una facade que proporciona un acceso sencillo a los métodos de esta clase. La función get() devuelve un objeto que contiene los usuarios de la tabla users.

Clase: Illuminate\Support\Collection
Objeto: $collection = collect([1, 2, 3])

En este ejemplo, Illuminate\Support\Collection es una clase que se utiliza para manipular colecciones de datos en Laravel. La función collect() devuelve un objeto de esta clase que puede ser utilizado para realizar operaciones en la colección, como filtrar, ordenar o buscar elementos específicos.

Clase: App\Models\User
Objeto: $user = new User()

En este ejemplo, App\Models\User es una clase que representa el modelo de usuario en una aplicación Laravel típica. La función new crea un objeto de esta clase que puede ser utilizado para realizar operaciones en un usuario específico, como crear, actualizar o eliminar un usuario.
17
Q

que es un array asociativo y que diferencia hay con uno comun?

A

En programación, un array asociativo es una estructura de datos que permite almacenar pares clave-valor. A diferencia de un array común, que utiliza índices numéricos para acceder a sus elementos, un array asociativo utiliza una clave única para cada valor almacenado, lo que permite acceder a los valores a través de su clave en lugar de un índice numérico.

Por ejemplo, un array común podría verse así:

$miArray = array(“Manzana”, “Naranja”, “Pera”);

Mientras que un array asociativo se vería así:

$miArray = array(“fruta1” => “Manzana”, “fruta2” => “Naranja”, “fruta3” => “Pera”);

En este ejemplo, “fruta1”, “fruta2” y “fruta3” son las claves, mientras que “Manzana”, “Naranja” y “Pera” son los valores correspondientes.

La principal diferencia entre un array asociativo y uno común es que en el primero se puede acceder a los valores utilizando una clave en lugar de un índice numérico. Esto hace que los arrays asociativos sean muy útiles en situaciones en las que se necesite almacenar y acceder a datos utilizando identificadores únicos en lugar de índices numéricos.

18
Q

¿Qué es la programación orientada a objetos y cuáles son sus principales conceptos?

A

La programación orientada a objetos (POO) es un paradigma de programación en el que los conceptos del mundo real se modelan como objetos que tienen atributos y comportamientos. Los principales conceptos de la POO son la clase, el objeto, la herencia, la encapsulación, el polimorfismo y la abstracción.

19
Q

¿Cuál es la diferencia entre una clase y un objeto?

A

Una clase es una plantilla o molde que se utiliza para crear objetos. Por otro lado, un objeto es una instancia de una clase, es decir, un ejemplar concreto que tiene sus propios valores de atributos.

20
Q

¿Cómo se manejan las excepciones en PHP y Laravel?

A

En PHP y Laravel, las excepciones son objetos que se lanzan para indicar que ha ocurrido un error. Se pueden manejar con bloques try-catch y se pueden personalizar para mostrar mensajes de error específicos.

21
Q

¿Qué es la herencia en POO y cómo se utiliza en Laravel?

A

La herencia es un mecanismo que permite crear una clase a partir de otra clase existente. La nueva clase hereda los atributos y métodos de la clase original y puede añadir nuevos atributos y métodos o sobrescribir los existentes.

22
Q

¿Qué es la encapsulación en POO y cómo se implementa en PHP y Laravel?

A

La encapsulación es un concepto que se refiere a la ocultación de la complejidad de un objeto detrás de una interfaz sencilla y consistente. En PHP y Laravel, la encapsulación se implementa utilizando los modificadores de acceso (public, private, protected) en las propiedades y métodos de una clase.

23
Q

¿Qué es la abstracción en POO y cómo se implementa en PHP y Laravel?

A

La abstracción es un concepto que se refiere a la capacidad de enfocarse en los aspectos esenciales de un objeto, ignorando los detalles menos importantes. En PHP y Laravel, la abstracción se implementa mediante la definición de interfaces, que son un tipo especial de clase que define un conjunto de métodos que deben ser implementados por cualquier clase que la implemente.