Manual Técnico Carpeta Common
Documentación Técnica de Quiz.php
Español
Descripción General
El archivo Quiz.php es una clase de modelo que representa cuestionarios en el sistema, extendiendo la clase ActiveRecord de Yii2. Maneja la gestión de cuestionarios dentro de cursos, incluyendo sus propiedades, relaciones y reglas de validación.
Propósito
Esta clase sirve como modelo central para gestionar cuestionarios en el sistema, proporcionando funcionalidad para crear, actualizar y gestionar cuestionarios con varias propiedades como límites de tiempo, estado y asociaciones con cursos.
Estructura de Directorios
- Ubicación:
common/models/Quiz.php - Espacio de nombres:
common\models - Clase Padre:
\yii\db\ActiveRecord
Componentes Principales
Definición de Clase
class Quiz extends \yii\db\ActiveRecordPropiedades
id: Clave primariacourse_id: Clave foránea al modelo Coursetitle: Título del cuestionariodescription: Descripción del cuestionariotime_limit: Límite de tiempo en minutosstatus: Estado del cuestionariocreated_at,updated_at: Marcas de tiempo
Métodos Principales
-
tableName()
- Propósito: Define el nombre de la tabla de base de datos
- Retorna: String ‘quiz’
-
rules()
- Propósito: Define reglas de validación
- Valida:
- Campos requeridos: course_id, title, created_at, updated_at
- Campos enteros: course_id, time_limit, status, created_at, updated_at
- Campos de texto: title, description
-
Relaciones
getCourse(): Relación belongs to con el modelo CoursegetQuizAttempts(): Relación has many con el modelo QuizAttemptgetQuizQuestions(): Relación has many con el modelo QuizQuestion
Ejemplo de Uso
$quiz = new Quiz();$quiz->course_id = 1;$quiz->title = "Examen Final";$quiz->description = "Examen final comprensivo";$quiz->time_limit = 120; // 2 horas$quiz->status = 1;$quiz->save();Quiz.php - Technical Documentation
English
Overview
The Quiz.php file is a model class that represents quizzes in the system, extending Yii2’s ActiveRecord class. It handles the management of quizzes within courses, including their properties, relationships, and validation rules.
Purpose
This class serves as the core model for managing quizzes in the system, providing functionality for creating, updating, and managing quizzes with various properties such as time limits, status, and course associations.
Directory Structure
- Location:
common/models/Quiz.php - Namespace:
common\models - Parent Class:
\yii\db\ActiveRecord
Key Components
Class Definition
class Quiz extends \yii\db\ActiveRecordProperties
id: Primary keycourse_id: Foreign key to Course modeltitle: Quiz titledescription: Quiz descriptiontime_limit: Time limit in minutesstatus: Quiz statuscreated_at,updated_at: Timestamps
Main Methods
-
tableName()
- Purpose: Defines the database table name
- Returns: String ‘quiz’
-
rules()
- Purpose: Defines validation rules
- Validates:
- Required fields: course_id, title, created_at, updated_at
- Integer fields: course_id, time_limit, status, created_at, updated_at
- String fields: title, description
-
Relationships
getCourse(): Belongs to relationship with Course modelgetQuizAttempts(): Has many relationship with QuizAttempt modelgetQuizQuestions(): Has many relationship with QuizQuestion model
Usage Example
$quiz = new Quiz();$quiz->course_id = 1;$quiz->title = "Final Exam";$quiz->description = "Comprehensive final examination";$quiz->time_limit = 120; // 2 hours$quiz->status = 1;$quiz->save();Additional Notes / Notas Adicionales
Technical Details / Detalles Técnicos
- Implements Yii2’s ActiveRecord pattern
- Manages quiz attempts and questions
- Supports time-limited quizzes
- Includes status tracking
- Implements comprehensive validation rules
Best Practices / Mejores Prácticas
- Always validate quiz data before saving
- Set appropriate time limits for different quiz types
- Maintain proper relationships with course and questions
- Consider performance implications for large quizzes
- Use appropriate status values for quiz state management
Related Components / Componentes Relacionados
- Course Model
- QuizAttempt Model
- QuizQuestion Model
- QuizController
- QuizSearch Model