LasIndias.blog

Conquistar el trabajo es reconquistar la vida

Grupo de Cooperativas de las Indias

videoblog

libros

Migrando Codeka a KumbiaPHP: La base de datos y los modelos

Conectando nuestra aplicación con la base de datos

crud_proveedoresEn la entrega anterior de esta serie de entradas sobre la migración de Codeka a KumbiaPHP, desarrollamos la página principal de la aplicación y conversamos sobre las convenciones en KumbiaPHP. Hoy vamos a conectar nuestra aplicación con la base de datos. Para empezar a trabajar en los archivos de nuestra aplicación, tenemos que diseñar, crear, y configurar nuestra base de datos.

La Base de Datos:

Crearemos una base de datos, en mi caso la he llamado codeku, y en esta base de datos vamos a crear tres tablas: proveedores, provincias y entidades.

Vamos a utilizar casi la misma estructura de dichas tablas en Codeka, digo casi la misma porque tenemos que realizar unos pequeños cambios a fin de cumplir con algunas convenciones de KumbiaPHP. Estas convenciones están relacionadas con la clase ActiveRecord, que es la clase principal para la administración y funcionamiento de modelos dentro de la arquitectura MVC.

Detallo a continuación los cambios realizados en cada tabla:

Tabla proveedores

La llave primaria pasa de ser codproveedores a id, ya que de esta forma ActiveRecord asumirá que se trata de la llave primaria de la entidad y que es autonumérica.

Igualmente, las llaves foráneas pasarán a llamarse provincias_id y entidades_id, esto le indica a ActiveRecord que existen otras dos tablas llamadas provincias y entidades, y que estas contienen un campo id que es foránea a éste. Todo esto nos facilitará establecer relaciones entre los modelos a la hora de programar.

CREATE TABLE IF NOT EXISTS `proveedores` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(45) NOT NULL,
  `nif` varchar(12) NOT NULL,
  `direccion` varchar(50) NOT NULL,
  `provincias_id` int(2) NOT NULL,
  `localidad` varchar(35) NOT NULL,
  `entidades_id` int(2) NOT NULL,
  `cuentabancaria` varchar(20) NOT NULL,
  `codpostal` varchar(5) NOT NULL,
  `telefono` varchar(14) NOT NULL,
  `movil` varchar(14) NOT NULL,
  `email` varchar(35) NOT NULL,
  `web` varchar(45) NOT NULL,
  `borrado` varchar(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Proveedores' AUTO_INCREMENT=1 ;

Tablas provincias y entidades

En estas dos tablas, sus llaves primarias pasaran a llamarse id por lo ya dicho.

CREATE TABLE IF NOT EXISTS `provincias` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `nombreprovincia` varchar(40) NOT NULL,
  PRIMARY KEY (`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Proveedores' AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `provincias` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `nombreprovincia` varchar(40) NOT NULL,
  PRIMARY KEY (`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Proveedores' AUTO_INCREMENT=1 ;

Configuración de la base de datos

Si echamos un vistazo a la arquitectura de directorios que mostramos en la entrada anterior, podemos encontrar en el directorio app – directorio de nuestra aplicación – el subdirectorio config, en este directorio podemos encontrar los archivos de configuración de nuestra aplicación (config.ini, routes.ini, y databases.ini). Cada uno de estos archivos nos permite configurar ciertos aspectos de nuestra aplicación.

En nuestro caso vamos a trabajar con una versión reducida de la base de datos de Codeka. Para e,mpezar a trabajar tenemos que crear nuestra base de datos en MySQL y una vez creada pasamos a trabajar en el archivo databases.ini de nuestra aplicación. Este archivo nos permite establecer la configuración de la conexión a la base de datos, si le damos un vistazo a este archivo podemos ver que está dividido en tres secciones: [development], [production], y [test]. Esto se debe a que en KumbiaPHP podemos configurar nuestra aplicación en modo desarrollo, producción y test. Dependiendo de esto, nuestra aplicación va a tomar los datos de conexión a la base de datos de la sección que corresponda. Por ahora vamos a conformarnos con saber que por defecto nuestra aplicación se ejecuta en modo desarrollo, por lo que tenemos que configurar la sección [development].

Nuestro archivo databases.ini en su sección [development] quedaría así:

[development]
host = localhost
username = root ; no es recomendable usar el usuario root
password =
name = codeku ; nombre de la base de datos
type = mysqli ;
charset = utf8 ; este valor es necesario para abrir conexiones UTF-8

Los valores asignados a host, username y password van a depender de tu configuración de mysql, y name es el nombre de la base de datos que ya creamos codeku.

Creando los modelos

Los modelos representan la información sobre la cual trabaja nuestra aplicación. Viendo la base de datos que creamos, podemos deducir que nuestra aplicación va a trabajar con información de proveedores, provincias, y entidades. Para poder manipular esta información tendremos que crear tres modelos, cada uno correspondiente a una de las tablas que tenemos en nuestra base de datos. Este trabajo lo vamos a realizar en el subdirectorio models del directorio de nuestra aplicación y tenemos que seguir las convenciones, que nos dicen que el archivo que contiene nuestro modelo se debe llamar igual que la tabla de nuestra base de datos (ambos en smallcase). Vamos a crear el modelo correspondiente a la tabla proveedores a fin verlo en la practica. En el directorio models, crearemos el archivo proveedores.php, cuyo contenido debe ser el siguiente:

app/models/proveedores.php


CamellCase. Esta clase debe heredar de la clase ActiveRecord, que como ya dijimos, es la clase principal para la administración y funcionamiento de modelos; esto es muy importante, ya que es lo que nos permitirá más adelante trabajar las entidades de nuestros modelos más naturalmente como objetos.

De igual forma, crearemos los modelos Entidades y Provincias:

app/models/provincias.php


app/models/entidades.php

controladores asociados a nuestros modelos.

«Migrando Codeka a KumbiaPHP: La base de datos y los modelos» recibió 0 desde que se publicó el domingo 2 de marzo de 2014 . Si te ha gustado este post quizá te gusten otros posts escritos por Manuel Ortega.

Deja un comentario

Si no tienes todavía usuario puedes crear uno, que te servirá para comentar en todos los blogs de la red indiana en la
página de registro de Matríz.

Grupo de Cooperativas de las Indias.
Visita el blog de las Indias. Sabemos que últimamente no publicamos demasiado pero seguimos alojando a la red de blogs y a otros blogs e iniciativas de amigos de nuestras cooperativas.