Cómo crear tu propio framework PHP especializado en un tema: Inventaria

Si alguna vez os habéis preguntado qué framework o qué gestor de contenidos utilizar, y no habéis llegado a ninguna conclusión quizás es porque lo que realmente necesitéis lo podéis hacer vosotros mismos con un poco de esfuerzo…y digo esto porque lo que necesitamos últimamente en la comunidad de programadores es gente que haga las cosas bien, gente como Pedro Luis, que nos regala el código de una web que tuvo que realizar en su trabajo. Pedro es Ingeniero Informático y le gusta hacer las cosas como un ingeniero debe hacerlas, con base y fundamento jeje

Nuestro amigo ha subido a su directorio lo que véis en el vídeo, el proyecto Inventaria, un motor de sitio web para organizar departamentos de un colegio, la tecnología que utiliza en su pequeño y humilde pero potente framework es: jQuery, PHP, mySQL y XHTML+CSS. Está pensada para que se pueda escalar fácilmente, añadiendo nuevas clases que harán de controladores y vistas…sí, le falta el modelo para completar el círculo del patrón MVC pero, quién necesita realmente un modelo cuando tienes el gestor de plantilla Smarty?… puede hacer el controlador y la comunicación con este sistema de plantillas de modelo al mismo tiempo? efectivamente, y así es como nuestro querido amigo Pedro lo ha pensado y ahora, sigamos viendo algo de código.

La estructura del sitio es algo que ya hemos visto en otros frameworks más famosos, primero tiene un index.php y por medio de un fichero .htaccess , redirige todas las peticiones menos multimedia a este script, que simplemente se conecta a la base de datos y renderiza la vista que la acción de la URL especifica, algo que todos conocemos:

//Extract Controller, Action and parameters from URL
  $query = $_SERVER['QUERY_STRING'];
  $request = explode('/', $query);
  $controller = (!empty($request[1])) ? $request[1] : 'main';
  $action = (!empty($request[2])) ? $request[2] : 'index';

y Pedro lo hace de forma muy inteligente y compactada, como véis es código que se entiende a la primera incluso las condiciones anidadas en una única línea. El motor o núcleo es tan sencillo que entra en esas menos de 100 líneas, un resultado de una acción se guarda directamente filtrado y procesado mediante el uso a la llamada de un controlador asociado creado en la variable $instance, que es la instancia de la clase perteneciente al controlador que la URL especifica…

 

include('controllers/'.$controller.'.php');
$instance = new $controller;
$result = call_user_func(array($instance, $action), $params);
$view = $result['view'];
$data = $result['data'];
 
render_view($view, $data);

aquí podéis ver que se carga el controlador, se crea la instancia de la clase y se procesa el resultado para llamar seguidamente al renderizador de la vista, que podría ser,al mismo tiempo cualquier otra clase, pero en este caso es smarty y cerramos el ciclo del patrón Modelo – Vista – Controlador de una de las maneras más simples que he visto en estos días jeje

Si profundizamos en el Controlador, veremos que implementa sólo dos, el encargado de la página principal y el que maneja las materias del departamento del colegio, y funciona casi como una capa por encima de la clase de la base de datos, es decir, hace las consultas de listados, modificaciones, inserciones o borrados fáciles sólo pensando un poquito.

Para instalarlo sólo hay que crear una base de datos ,poner los valores de configuración en index.php e install.php, que por simplicidad ni siquiera se ha creado un config.php jaja, y lanzamos este install.php, tras lo que podemos cargar la web en el navegador.

Para probar este software directamente en mi PC me he bajado el maravilloso paquete de MoWeS (Servidor Apache2+mysql5+php5+image-magick+phpmyadmin en 23MB), he descomprimido Inventaria en el directorio www/inv de MoWeS, después he creado una base de datos con juego de caracteres UTF8 con una instrucción sencilla en phpmyadmin:

 

CREATE DATABASE `inventaria` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

y he puestos los datos de configuración en index.php e install.php

  $host = 'localhost';
  $dbname = 'inventaria';
  $dbuser = 'root';
  $dbpass = '';

para lanzar localhost/inv/install.php ,lo que me devuelve:

Creating departments data table...OK
Creating materials data table...OK
Creating constraints...OK
Creating departments data
---------------------------
Creating Religión table...OK
Creating Plástica table...OK
Creating Ciencias Sociales table...OK
Creating Tecnología table...OK
Creating Francés table...OK
Creating Latín table...OK
Creating Música table...OK
Creating Gestión Administrativa table...OK
Creating Física y Química table...OK
Creating Educación Física table...OK
Creating Biología y Geología table...OK
Creating Filosofía table...OK
Creating Orientación table...OK
Creating Matemáticas table...OK
Creating Lengua table...OK
Creating Inglés table...OK

con lo cual, ya tenemos todo, ya podemos entrar en localhost/inv/. Si queremos cambiar el directorio inv por cualquier otro sólo tendríamos que cambiar las referencias en las plantillas de inv al nuevo nombre, por ejemplo, “inventaria”.
A partir de aquí ,es tarea del lector avanzar el proyecto y enfocarlo hacia una web que trate de manzanas, cómics, o por qué no? una tienda o cualquier otra cosa!
Ya no tenéis excusa para hacer las cosas bien desde cero, tenéis el conocimiento en vuestras manos, usadlo sabiamente :)

Mención especial a Pedro por compartir con nosotros su código, gracias!

Aplicación Web Multidominio con tecnología web 2.0

Los distintos dominios comparten la misma base de datos y un sistema de aplicaciones web hace que la informacion fluya a través de los distintos artículos haciendo uso de un algoritmo sencillo de etiquetas (tags) que conectan los contenidos que tienen relación entre sí. Las tecnologías usadas son propias de las webs 2.0, menús animados, transiciones de imágenes, validaciones en formularios, lightbox 2.0,etc. La administración se hace desde un único sitio y es para una base de datos compartida entre dominios así como el servidor de imágenes, esto hace que se carguen más rápidamente las páginas debido al procesamiento en paralelo, i.e., la descarga de todos los contenidos de la web simultánea por el navegador.


Ver vídeo en youtube con explicaciones

El diseño de la web se hizo por Agencia Q4.

Mini aplicación web AJAX con gestor de contenidos

En este caso la aplicación web es un catálogo de minitractores con categorías, edición de atributos en los productos y animaciones con JQuery. Contiene un buscador rápido de contenidos,la administración de la información de la empresa se hace con texto enriquecido y el framework utilizado es zenphp.


Ver vídeo en youtube con explicaciones

Design by: Agencia Q4.

OsCommerce – tienda online programada con AJAX

Se puede ver que este OsCommerce está implementado con una plantilla a medida usando AJAX (web 2.0) y módulos que se ajustan a las necesidades del cliente: SEO, Cupones de descuento, grupos de clientes, tarjetas de crédito, etc. Lo poco que se ve de la administración muestra un editor wysiwyg (editor online html con estilos) para los productos asi como la selección de precios por grupos de clientes, información SEO y un largo etc.

Ver vídeo en youtube con explicaciones

El diseño corre a cargo de la empresa Agencia Q4.

Gestor de contenidos con últimas tecnologías web

En este sitio web se comparte el funcionamiento de la edición de artículos para distintas clases de categorías, se hace uso de tecnologías como RSS para sindicar el contenido de dichos artículos y noticias asi como de validaciones con prototype y scriptaculous para terminar con un rápido funcionamiento general gracias al framework zenphp. La administración del contenido se hace a través de una aplicación web diseñada a tal efecto de forma que se puede añadir,editar o borrar cualquier parte de la web fácilmente, cualquiera podría hacerlo y además se ajusta a las necesidades de los usuarios, de hecho trae un algoritmo único de galería de imágenes y de mapa de imagen para colocar los barrios del pueblo de las Gabias en Granada.

Vídeo en YouTube con explicaciones

El diseño corre a cargo de la empresa Agencia Q4.

Aplicación web y tecnologías a medida

Esta aplicación web hecha a medida con la plantilla de un diseñador web muestra como se puede adaptar en poco tiempo el contenido de una página a las peticiones de un cliente y un administrador. Todo el contenido es editable: animaciones con JQuery, validaciones, objetos flash incrustables, rutas de miga de pan, direcciones (url’s) amigables (SEO) editables desde la administración, jerarquía de categorías administrable, galería de imágenes, etc.

vídeo en youtube con explicaciones sobre la imagen

El diseño corre a cargo de la empresa Agencia Q4.

footer
jbelon © | sitemap.xml