Evilnapsis

Programming, Hacking and More

Learning

Introduccion a LegoBox

LegoBox es un framework PHP que desarrolle en el año 2013 inspirado en Symfony 1.4, con la finalidad de desarrollar varios proyectos que tenia que hacer y que he seguido actualizando y utilizando para el desarrollo de sitios web y software en PHP.

He desarrollado 3 versiones, la versión 1.0 que fue la inicial después le sigue la versión 3.6 y la versión actual 3.8, son pocos cambios de estructura los que hay entre versiones, los cambios principales entre la versión 1 y 3.6 es el uso de actions, actualización de modelos y la versión 3.8 hace uso completo del patrón modelo-vista-controlador.

Mi intención no es enseñar a usar las versiones antiguas de LegoBox ya que yo mismo las he marcado como obsoletas, mi intención es motivar gente a utilizar este framework.

El origen del nombre parece un poco obvio, legobox traducción caja de legos, a mi me gustan mucho los legos y en este framework hago atribución a construir software de la manera en que se crean construcciones con los legos.

Por ahora no construiremos nada con el framework solo me limitare a hablar de los componentes y caracteristicas que lo integran.

  • MVC
  • Ruteo
  • Base de datos (MySQL)
  • Modelos
  • Criteria
  • Sesiones
  • Flash Messages

MVC

Quizá el mayor logro de la version 3.8 es el uso del patrón MVC que ayuda a crear aplicaciones mucho mas rápidas separando  en 3 partes, el modelo, la vista y el controlador.

Digamoslo asi: el modelo son los datos, la base de datos. La vista son los componentes visuales, osease que se muestran al usuario. El controlador es quien recibe las peticiones del usuario y envia como respuesta los datos y las vistas acorde a la petición.

Ruteo

El ruteo es fácil simplemente tenemos un parámetro r al cual se le pasan 2 parámetros separados por diagonales : index/index . el primero es el controlador y el segundo es una función que están dentro del controlador, la función llama a la vista en caso de ser necesario.

Base de datos

Ha sido una decisión de mi parte solo darle soporte al gestor de base de datos MySQL puesto que es el que mas uso.

Existe una clase Database a la cual simplemente se le agregan los parámetros: host, usuario, password y base de datos, la conexión y demás son gestionadas por Executor la cual es llamada por los modelos.

Modelos

Los modelos los vengo usando desde la versión 1, sin embargo en la versión 3.8 los modelos son mas ligeros y con un autoload automático.

Los modelos son clases separadas para cada tabla de la base de datos y se van creando conforme las vamos necesitando.

Con el uso de los modelos se hace transparente el uso de la base de datos, solo se requiere configurar los datos de conexión.

Criteria

Criteria es una forma de dejar de usar los modelos, utilizando una clase general sin tener que estar creando clases “Modelos”.

Criteria lo introduje en esta versión, sin embargo esta en prueba y no se puede hacer todo.

Sesiones

La clase Session contiene funciones para el manejo de sesiones, crear, verificar, eliminar y obtener.

Flash Messages

Los flash messages sirven para enviar mensajes de advertencia desde una ventana a otra, utilizando sesiones con el prefijo _flash.

Descarga

LegoBox lo podran encontrar en el siguiente repositorio de GitHub.

https://github.com/evilnapsis/legobox

Conclusión

Con este post hice una breve introducción a LegoBox en un futuro explicare como usarlo, configurarlo y desarrollar aplicaciones en el ambiente lb.

Agustin Ramos

Desarrollador de Software

7 thoughts on “Introduccion a LegoBox

  • Yaskorleoen

    Hola, podría utilizar una versión de las que tú tienes para realizar un fork del franework y desarrollar el propio mío??

    • Hola amigo, como estas, es un gran gusto que consideres mi proyecto para tu uso personal, sientete libre de usarlo y adaptarlo a tus necesidades, ya que es un proyecto open source.
      Saludos

  • Helmuth Trujillo

    Hola, sale este error de inicio:

    Strict Standards: Non-static method Module::setModule() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\legobox\core\controller\Lb.php on line 20

  • Henry García Ospina

    Muchas gracias, estoy viendo su version LegoBox 3.6 ya que no hay ejemplos de uso de la 3.8.
    Sería de gran ayuda que la aplicación Inventio Lite la llevaras a la versión 3.8, así quedariamos con todo el conocimiento de como usarla.

    Muchas gracias.

    Cordial saludo,

    Henry García O

    • Hola henry, la version 3.8 de legobox actualmente la estoy probando en otros proyectos, ya que tiene ciertos comportamientos inestables yotros a los que aun no me acostumbro, ya que la version 3.6 he hecho varios proyectos, voy a intentar escribir mas adelante una especie de migracion de lb 3.6 a lb 3.8 o la siguiente version en desarrollo. Saludos

  • Pingback: Recorrido por LegoBox 3.6 | Evilnapsis

Leave a Reply to Recorrido por LegoBox 3.6 | Evilnapsis Cancel reply