Introducción a desarrollo web con PHP y Yii

1

Desarrollo web con G2: Framework PHP práctico y seguro

2

Desarrollo web con PHP y Yii: Instalación y uso eficiente

3

Arquitectura MVC: Modelo, Vista y Controlador

4

Instalación y Configuración de Yii en Entorno Local

5

Estructura de Archivos en Proyectos Yii2 Básicos

6

Configuración Básica de Proyectos en Yii con Variables de Entorno

Quiz: Introducción a desarrollo web con PHP y Yii

Esquema de la aplicación

7

Creación de una Biblioteca Personal con Yii2 y Bases de Datos

8

Creación y Gestión de Bases de Datos en SQL: Tablas y Buenas Prácticas

9

Tablas de Clubes y Miembros en MySQL

Quiz: Esquema de la aplicación

Modelos, vistas y controladores

10

Comandos en Yii: Creación y Ejecución de Controladores en Terminal

11

Modelos en PHP: Creación y Manipulación de Datos

12

ActiveRecord: Integración de Bases de Datos en Frameworks PHP y Ruby

13

Gestión de Autores y Libros en Yii: Creación y Consulta Eficiente

14

Relaciones ActiveRecord en Yii: Conectar Libros y Autores

15

Relaciones de uno a muchos en Yii: Obtener libros de un autor

16

Creación y Uso de Controladores Web en Yii Framework

17

Redirección y manejo de errores en controladores Yii

18

URLs Amigables: Gestión y Creación con URL Manager en PHP

19

Vistas en PHP con Yii y Smarty para Web Apps Sin Frameworks Frontend

20

Plantillas Smarty con Yii: Instalación y Uso Básico

Quiz: Modelos, vistas y controladores

Manejo de usuarios con Yii2

21

Creación y Gestión de Usuarios en Aplicaciones Web Seguras

22

Ofuscación y Validación de Contraseñas en Yii Framework

23

Implementación de Login y Gestión de Usuarios en Yii2

24

Controlador en Yii: Creación y Manejo de Usuarios

25

Creación de Formularios con ActiveForm y Smarty en PHP

26

Validación de Datos en Modelos y Formularios con Yii2

27

Validaciones y Filtros en PHP para Gestión de Usuarios

Quiz: Manejo de usuarios con Yii2

Enlaces, navegación y tablas intermedias

28

Creación y Gestión de Libros en Aplicaciones Web

29

Crear y Gestionar Repisas de Libros en PHP

30

Condicionales y funciones para gestionar libros en la aplicación

31

Calificación de Libros con Validación en PHP y Yii Framework

32

Generación de Información a Partir de Datos en Bases de Datos

33

Relaciones de Tablas en Bases de Datos: Cálculo de Promedios

34

Modificaciones de Menú y Layout en Aplicación Web con G

Quiz: Enlaces, navegación y tablas intermedias

Despliegue y cierre del proyecto

35

Deploy de Aplicaciones en Heroku: Paso a Paso Práctico

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

ActiveRecord: Integración de Bases de Datos en Frameworks PHP y Ruby

12/35
Recursos

¿Qué es ActiveRecord y por qué es tan poderoso?

El ActiveRecord es una de las características más impresionantes de los frameworks modernos, y su implementación puede encontrarse en diferentes lenguajes y plataformas como Yii en PHP, Ruby on Rails, y Django. Este patrón ofrece una manera de sincronizar nuestro sistema de clases y objetos con nuestra base de datos, reflejando en cada tupla una representación directa de un modelo en nuestro sistema.

¿Cómo funciona ActiveRecord?

ActiveRecord permite que lo que hagas en la base de datos se refleje automáticamente en el sistema y viceversa. Al hacer cambios en el sistema, esos cambios son válidos en la base de datos, siguiendo ciertas reglas básicas. Esto no solo ahorra tiempo, sino que también simplifica el desarrollo al ofrecer una estructura más clara y unificada.

¿Cómo implementar ActiveRecord en Yii?

Para poner en marcha ActiveRecord en Yii, es fundamental hacer unas configuraciones iniciales correctas:

  1. Conectar con la base de datos: Aunque la conexión ya está establecida de manera invisible, debemos configurar cómo buscar y relacionar los datos.

  2. Cambios en la clase modelo:

    • Cambiaremos la extensión de model a ActiveRecord.
    • Definimos la tabla a la que se asociará el modelo usando public static function tableName().
    • Yii asume que nuestras tablas contienen una columna ID, lo cual puede ser sobreescrito si nuestra estructura es distinta.
  3. Guardar cambios en la base de datos: Una vez instanciado un nuevo objeto de un modelo, con ActiveRecord podemos guardar los datos simplemente llamando al método save().

public static function tableName() {
    return 'books';
}

// Guardar un nuevo registro
$book = new Book();
$book->title = "Nuevo libro";
$book->save();

¿Qué errores comunes podrías encontrar?

Durante la implementación pueden surgir ciertos errores como:

  • Falta de valores por defecto: Si una columna en la base de datos no permite valores nulos, debe tenerse un valor predeterminado. Por ejemplo, si author ID necesita un valor, puedes asignar 1 temporalmente en desarrollo.

  • Columnas y lenguajes cruzados: Es crucial asegurarse de que las columnas usadas y los lenguajes aplicados concuerden con las definiciones establecidas.

  • Restricciones de caracteres: Si el título del libro excede la definición del varchar, deberías ajustar el esquema de la base de datos o controlar el valor desde el código.

ALTER TABLE books MODIFY COLUMN title VARCHAR(500);

¿Por qué explorar más allá de ActiveRecord?

Una vez que entiendas cómo funciona ActiveRecord, puedes realizar operaciones más complejas, como traer, modificar y guardar información de la base de datos, proporcionando una capa de abstracción que permite desarrollar aplicaciones más robustas y escalables.

  • Recuperación y manipulación de datos: Puedes operar con datos que provienen directamente de la base de datos, ofreciendo una flexibilidad impresionante en el manejo de información.

  • Modificaciones eficientes: Al realizar operaciones directamente en el modelo, se minimiza el código y se mantiene la lógica centralizada y eficiente.

Este es solo el comienzo del inmenso potencial que ActiveRecord puede ofrecer. A medida que avances, podrás integrar más funcionalidades y optimizar tus desarrollos con este poderoso patrón. ¡Sigue aprendiendo y experimentando!

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Saludos estaba con problemas de conexión a la BD si persiste revisen primero si tienen activado la opción a la BD, por favor, esto es con el siguiente comando: `php -m | grep pdo_mysql` `sudo apt update` `sudo apt install php-mysql` Esto es en WSDL no tenía activado el controlador de MYSQL.
Estoy trabajando con mariaDB, el ejercicio funciono. Esta funcion de ActiveRecord es espectacular!!!
el archivo cvs que dejaron aca en recursos tiene 430 libros
Destaco dos puntos importantes en esta clase. **Ocurrio un “Teachable Moment” (Momento de ensenanza)** demasiado importante cuando la data se trunco y se modifico manualmente la tabla de la base de datos. En un ambiente de trabajo cuando esto sucede se debe recurrir a una solución que mantenga a tu equipo de trabajo informado o por lo menos que se deje constancia de lo sucedido. 1. Entonces podemos recurrir a las migraciones, devolver la creación de la tabla, corregir la migración y volver a migrar las tablas. 2. O otra opción crear una nueva migración que altere la tabla y corrija el tamaño del campo. El segundo punto es que me queda un sin sabor con respecto a Yii, apenas lo estoy aprendiendo, pero considero que el modelo debió prevenir la carga de una parte de los registros e informar del truncamiento antes que ocurriera. Mediante un **COMMIT TRANSACTION** o algo por el estilo.
Las 2 palabras más temidas en MySQL: Drop y Where 😂
**ActiveRecord** es un patrón de diseño utilizado en el ámbito del desarrollo de software, especialmente en el contexto de aplicaciones que interactúan con bases de datos. En este patrón, cada clase representa una tabla en la base de datos, y cada instancia de la clase representa una fila en dicha tabla. Las clases ActiveRecord proporcionan métodos para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) directamente sobre las filas de la base de datos, lo que simplifica la manipulación de datos y mejora la legibilidad del código. Así se define un ActiveRecord: ```js namespace app\models; use yii\db\ActiveRecord; class Post extends ActiveRecord { // Especificamos el nombre de la tabla asociada a este modelo public static function tableName() { return 'post'; } // Definimos las reglas de validación para los atributos public function rules() { return [ [['title', 'content'], 'required'], [['title'], 'string', 'max' => 255], [['content'], 'string'], ]; } } ```namespace app\models; use yii\db\ActiveRecord; class Post extends ActiveRecord { // Especificamos el nombre de la tabla asociada a este modelo public static function tableName() { return 'post'; } // Definimos las reglas de validación para los atributos public function rules() { return \[ \[\['title', 'content'], 'required'], \[\['title'], 'string', 'max' => 255], \[\['content'], 'string'], ]; } }