|
1 gadu atpakaļ | |
---|---|---|
Images | 1 gadu atpakaļ | |
react | 1 gadu atpakaļ | |
yii2 | 2 gadi atpakaļ | |
README.md | 1 gadu atpakaļ |
config/db.php
Este documento tiene como objetivo proporcionar las pautas y pasos necesarios para llevar a cabo la creación de tablas y servir información mediante el consumo de endpoints o APIs en el backend.
El archivo principal contiene una serie de pasos detallados que deben seguirse para configurar y poner en marcha el proyecto. A continuación, se describen los principales puntos:
Setear tus variables de entorno
Se explicará cómo crear un rol de usuario específico para la base de datos, garantizando la seguridad y los permisos adecuados.
Recuerda tener instalado el motor del posgres para poder operar la consola.
Ingresar el siguiente ejemplo desde la consola de (psql):
create role "DB_USER" with login password 'DB_PASSWORD';
Los pasos para la creación de la base de datos necesaria serán detallados, asegurando la correcta configuración del entorno de almacenamiento de datos. Ingresar el siguiente ejemplo desde la consola de (psql):
create database "DB_NAME" with owner="DB_USER" template=template0;
nota: recuerda agregar el mismo nombre de usuario, password, nombre de la base de datos en tu archivo db.php antes de aplicar tus migraciones
config/db.php
Se proporcionarán instrucciones sobre cómo configurar adecuadamente el archivo db.php
para establecer la conexión entre la aplicación y la base de datos.
Configurar en el archivo config/db.php la información de la base de datos, reemplazar DB_NAME, DB_USER y DB_PWD
Instrucciones sobre cómo clonar el proyecto desde el repositorio de PHP para obtener la estructura base del proyecto.
https://git.miralo.xyz/computo21/yii2.git
Después de clonar el proyecto ejecutar en la terminal instalar las dependencias composer
composer install
Si te aparece el siguiente error, proceder a actualizar composer.
composer update
Se describirá el proceso de migración, que implica aplicar y gestionar cambios en la base de datos a medida que evoluciona la aplicación.
Comando para ejecutar migraciones.
php yii migrate
Comando para ejecutar solo una migración.
php yii migrate/up 1
Comando para crear un archivo de migración.
php yii migrate/create :name:
Si deseas ver las tablas creadas en tu base de datos, lo puedes hacer dentro de psql con el comando.
\dt
Si deseas checar la conectividad a tu base de datos, puedes hacerlo de la siguiente manera.
Setear las variables de entorno de Postgres.
Puedes proceder a gestionar tu base de datos directamente ahora desde CMD.
psql -h localhost -U DB_USER -d your_database_name
Con el siguiente comando sales del modo PSQL.
\q
También se puede utilizar el gestor Datagrip para facilitar de manera manual las transacciones.
Configuración del Datagrip.
nota: como podemos observar, pudimos configurar la conexión desde la interfaz gráfica de usuario (GUI), mediante Datagrip, para facilitar la gestión de la base de datos previamente creada.
Pasos detallados sobre la creación de tablas específicas, asegurando la coherencia y estructuración adecuada de los datos.
Ejemplo para hacer una tabla, llave primaria, llave foránea.
php yii migrate/create tbl_ra
Comando para dar downgrade a la migración.
php yii migrate/down
Codigo para crear dos entidades Producto Categoria
archivo:m240201_185131_tbl_test.php
<?php
use yii\db\Migration;
/**
* Class m240201_185131_tbl_test
*/
class m240201_185131_tbl_test extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->createTable('Producto', [
// "idProducto" => $this->primaryKey(), // Esta es una manera de volver llave primaria
"idProducto" => $this->string(36), // UUID es por eso el 36
"idCategoria" => $this->string(36),
"clave" => $this->string(20),
"nombre" => $this->string("255"),
"descripcion" => $this->string("255"),
"idUsuarioCreador" => $this->integer(),
"creado" => $this->timestamp() . " with time zone",
"modificado" => $this->timestamp() . " with time zone",
"eliminado" => $this->timestamp() . " with time zone",
]);
$this->addPrimaryKey('ProductoPK', 'Producto', 'idProducto');
$this->createTable('Categoria', [
"idCategoria" => $this->string(36),
"clave" => $this->string(20),
"nombre" => $this->string("255"),
"descripcion" => $this->string("255"),
"idUsuarioCreador" => $this->integer(),
"creado" => $this->timestamp() . " with time zone",
"modificado" => $this->timestamp() . " with time zone",
"eliminado" => $this->timestamp() . " with time zone",
]);
$this->addPrimaryKey('CategoriaPK', 'Categoria', 'idCategoria');
$this->addForeignKey('ProductoIdCategoriaFK', 'Producto', 'idCategoria', 'Categoria', 'idCategoria');
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
echo "m240201_185131_tbl_test cannot be reverted.\n";
$this->dropForeignKey('ProductoIdCategoriaFK', 'Producto');
$this->dropTable("Producto");
$this->dropTable("Categoria");
}
/*
// Use up()/down() to run migration code without a transaction.
public function up()
{
}
public function down()
{
echo "m240201_185131_tbl_test cannot be reverted.\n";
return false;
}
*/
}
Al ejecutar la migración si todo esta bien debe aparecer tus tablas en la base de datos, en este caso producto-categoria.
nota: Podemos visualizar la relación entre entidades mediante Datagrip.
Instrucciones para inicializar el servidor PHP y poner en marcha la aplicación localmente.
Comando para iniciar un servidor HTTP en el proyecto.
php yii serve
La primera pantalla al iniciar el servidor es:
**nota: **recuerda agregar la extensión gii para crear tus modelos http://localhost:8080/gii
Cómo utilizar el generador de modelos proporcionado por Yii 2 para facilitar la creación de modelos de datos.
Entrar en la url del servidor HTTP e ir a la url http://localhost:8080/gii para entrar en el generador de código, después elegir "Model Generator"
Rellenar los campos "Table Name" y "Model Class Name"
Dale clic en "Preview" y después "Generate" para generar el modelo de la tabla.
Ejemplo generación de modelos Producto y Categoria
Archivo generado en la carpeta "models"; normalizar la nomeclatura de los modificadores de acceso, ya que en veces el modelo en atributeLabels se genera con plurales o “s”, etc.
Ejemplo
Corregir etiquetas de "attributeLabels", nombre de las relaciones ("getIdUsuario0" => "getUsuario") y php doc (documentación sobre la clase)
Generar en el directorio models del módulo donde estemos trabajando (por lo general en modules/v1/models).
agregar una clase que herede del archivo que acabamos de generar
agregaremos los métodos fields (campos visibles por el producto como categoria) y extraFields sería categoria.
ejemplo
el modelo que está en la raíz debe heredar de ModeloBase
Instrucciones sobre cómo configurar controladores para gestionar de manera eficiente las solicitudes y respuestas en la aplicación.
Para crear el controlador, copiar el archivo de un catálogo y renombrar el archivo, la clase y la variable $modelClass, corregir los textos de los mensajes de respuesta.
Lista de tareas pendientes o mejoras planificadas para el proyecto.