LasIndias.blog

Conquistar el trabajo es reconquistar la vida

Grupo de Cooperativas de las Indias

videoblog

libros

Migrando Codeka a KumbiaPHP

En esta entrada pretendo mostrar como podría realizarse la migración de Codeka a KumbiaPHP a fin de mejorar la programación con el uso de MVC y otras herramientas que nos proporciona KumbiaPHP, es mi intención que esta entrada no solo sirva a los desarrolladores de Codeka como un ejemplo de una posible migración sino que también sea de utilidad para aquellas personas que están comenzando en el uso de KumbiaPHP.

Requisitos:

  • Tener instalado Apache, PHP5 y Mysql
  • Conocimientos en MVC y POO.

Una pequeña introducción a lo que es Codeka y KumbiaPHP..

KumbiaPHP

KumbiaPHP es un framework para aplicaciones web libre escrito en PHP5. mas información

Codeka

Codeka es una aplicación para controlar la facturación y gestionar el almacén de una pequeña o mediana empresa.mas información.

Codeka maneja información de clientes, proveedores y otras entidades. podemos decir que cuenta con el modulo clientes, modulo proveedores y otros. En este caso y dado que solo pretendo dar un pequeño ejemplo que como se vería Codeka usando KumbiaPHP voy a migrar a KumbiaPHP el modulo de proveedores, es decir, las cuatro operaciones básicas que se pueden realizar sobre la tabla proveedores además de una vista de búsqueda.

Instalando KumbiaPHP

Tenemos que descargar una copia de KumbiaPHP desde aquí, una vez obtenida la copia del framework descomprimimos y renombramos la carpeta con el nombre de nuestro proyecto, para efecto del ejemplo llamaremos a nuestro proyecto kumbiaCodeka, copiamos esta carpeta en el directorio publico de nuestro servidor, kumbiaCodeka es el nombre de nuestro proyecto pero esto podria cambiar. Vamos a conocer un poco la estructura de directorios de KumbiaPHP a fin de saber en que directorios vamos a trabajar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
kumbiaCodeka/
|-- app
|   |-- application.php
|   |-- config
|   |-- controllers
|   |-- extensions
|   |   |-- filters
|   |   |-- helpers
|   |   `-- scaffolds
|   |-- index.php
|   |-- libraries
|   |-- locale
|   |-- model_base.php
|   |-- models
|   |-- public
|   |-- temp
|   `-- views
|       |-- errors
|       |-- pages
|       |-- partials
|       `-- templates
|-- core
|   |-- console
|   |-- docs
|   |-- extensions
|   |   |-- helpers
|   |   `-- scaffolds
|   |-- kumbia
|   |-- libraries
|   |-- tests
|   |-- vendors
|   `-- views
|       |-- errors
|       `-- templates

Los dos directorios principales son app y core, app es el directorio de nuestra aplicación y core es el nucleo de kumbiaPHP, nosotros vamos a trabajar en el directorio app en los subdirectorios controllers,models y views. esto siguiendo MVC y sabiendo que los Modelos representan la información sobre la cual la aplicación opera, su lógica de negocios. las Vistas visualizan el modelo usando páginas Web e interactuando con los usuarios de éstas y los Controladores responden a acciones de usuario e invocan cambios en las vistas o en los modelos según sea necesario.

Antes de continuar vamos a verificar que todo este trabajando bien en nuestras configuraciones a nivel de servidor web, para esto abrimos nuestro navegador web y colocamos http://localhost/kumbiaCodeka/, si todo esta funcionando bien deberia mostrarnos la siguiente imagen.

kumbiaBienvenida

Configuraciones(Base de datos).

Si echamos un vistazo a la arquitectura de directorios que mostramos arriba 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, databases.ini y boot.ini). Cada uno de estos archivos nos permite configurar ciertos aspectos de nuestra aplicación.

Dado que ya creamos nuestra base de datos(codeka) vamos a trabajar en el archivo databases.ini el cual nos permite establecer la configuración de conexión a la base de datos, si le damos un vistazo a este archivo podemos ver que esta dividido en tres secciones [development] , [production] y [test]. Esto se debe a que en KumbiaPHP podemos configurar nuestra aplicación en modo desarrollo, produccion 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 asi.

1
2
3
4
5
6
[development]
host = localhost
username = usuario
password = contrasenia
name = codeka
type = mysql

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(codeka).

Creando los modelos

Cuando hablamos de modelos dijimos que estos representan la información sobre la cual la aplicación opera. Viendo la base de datos que creamos podemos deducir que nuestra aplicacion va a trabajar con informacion de proveedores, provincias y entidades por lo que para poder manipular esta informacion 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 aplicacion 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:

1

Como vemos creamos una clase con el mismo nombre de nuestra base de datos pero esta vez en 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 permitira mas adelante trabajar las entidades de nuestos modelos más naturalmente como objetos.

De igual forma crearemos los modelos Entidades y Procincias:

kumbiaCodeka/app/models/provincias.php

1


kumbiaCodeka/app/models/entidades.php

1

Las Vistas

Cuando hablamos de la estructura de directorio dijimos que las vistas visualizan el modelo usando páginas Web e interactuando con los usuarios de éstas. KumbiaPHP posee un sistema de presentación basado en Vistas (Views) que viene siendo el tercer componente del sistema MVC. El framework permite mediante plantillas reutilizar código.

Las vistas deberían contener una cantidad mínima de código en PHP para que fuese suficientemente entendible por un diseñador Web y además, para dejar a las vistas sólo las tareas de visualizar los resultados generados por los controladores y presentar las capturas de datos para usuarios.

Vamos estudiar un poco como es la presentación de codeka a fin de difinir como vamos a migrar este aspecto de Codeka a KumbiaPHP. En Codeka en la pagina principal tenemos un menu y una pagina estatica que nos presenta el logo de Codeka, si a travez del menu seleccionamos proveedores veremos el mismo menu y en el espacio que ocupaba la pagina de presentación tendremos una vista que nos presenta opciones de busqueda y un listado de proveedores, de esto podemos decir que tenemos tres componentes, primero una plantilla que define la estructura del la pagina web, en segundo lugar un partial que nos presenta un menu y por ultimo el vistas que van cambiando segun las acciones que el usuario va solicitanto.

Vamos a plasmar esta idea para que puedan ver como funciona el sistema de vistas en KumbiaPHP.

Creando la plantilla principal

Las plantillas son un tipo de archivo pre-formateado utilizado como base para otros archivos. Todas la plantillas de mi aplicacion las vamos a crear en el directorio app/views/templates, en este directorio vamos a crear el archivo principal.phtml(las vistas, plantillas y partials tienen la extensión .phtml que indica que es php con htm), el contenido de ese archivo sera el siguiente:

kumbiaCodeka/app/views/templates/principal.phtml

1
        <title>Codeka Facturacion Web</title>

Como podemos ver en esta plantilla definimos la estructura del documento XHTML (doctype, html, head, etc).Dentro de la etiqueta body tenemos algo de código php en el cual utilizamos la clase View(la cual viene definida en el core de kumbiAPHP) mas específicamente utilizamos dos de sus métodos, el primero es el método View::partial($partial) el cual le indica a KumbiaPHP que debe mostrar el partial cuyo nombre pasamos como argumento(en este caso un partial llamado menu que debe estar en el directorio kumbiaCodeka/app/views/partials).El segundo método es el método View::content() el cual se utiliza para indicar donde KumbiaPHP debe renderizar (mostrar) el contenido almacenado en el buffer de salida, es decir el próximo nivel de la vista que generalmente corresponde a la vista asociada a una acción de un controlador, esto lo veremos mas adelante.

Otro elemento de KumbiaPHP que utilizamos en esta plantilla es stylesheet_link_tag($archivo_css, , [use_variables: true]) que es un helper, los helpers son una serie de funciones que facilitan y agilizan la escritura de código HTML al escribir una vista. El objetivo de los helpers es el de encapsular grandes cantidades de código HTML o Javascript minimizándolo en una sola función, en este caso utilizamos el helper stylesheet_link_tag($archivo_css, , [use_variables: true]) que nos permite incluir un archivo css que está ubicado en app/public/css. Por ultimo tenemos el metodo stylesheet_link_tags() de la clase Kumbia el cual imprime los CSS cargados mediante stylesheet_link_tag. Como podemos ver hemos cargado 2 archivos CSS(estilos,style). el archivo estilos contiene los estilos de nuestra aplicacion y el archivo style contiene algunos estilos relacionados con KumbiaPHP. a continuacion dejo un enlace para que se descargen el archivo estilos.css ya que style viene por defecto con KumbiaPHP.

kumbiaCodeka/app/public/css/

estilos.css

Creando el partial menu

Los partials son pequeñas vistas que pueden incluirse dentro de otra vista para evitar repetir código. En nuestro caso vamos a crear un partial para el menu de nuestra aplicacion, En la estrucctura de directorios de KumbiaPHP los partials deben se creados en el directorio app/public/partials/. nuestro partial quedara de la siguiente forma:

app/public/partials/menu.phtml

1
2
3
template='principal';
    }
}

Al finalizar todas estas configuracion vamos a abrir nuestro navegador web y colocamos http://localhost/kumbiaCodeka/, si todo esta funcionando bien debería mostrarnos la siguiente imagen.

kumbiaCodeka

Agradezco de antemano cualquier comentario que puedan hacer a fin de mejorar este minitutorial. Tambien quiero aprovechar la oportunidad para agradecer a todo el equipo de desarrollo de kumbiaPHP por la ayuda prestada en relacion al uso del framework.

Bibliográfica:

wiki de KumbiaPHP

Manual PDF de KumbiaPHP Framework

«Migrando Codeka a KumbiaPHP» recibió 0 desde que se publicó el Martes 14 de Julio de 2009 . Si te ha gustado este post quizá te gusten otros posts escritos por Manuel Ortega.

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.