Evilnapsis

Programming, Hacking and More

Web Development

Recorrido por LegoBox 3.6

LegoBox como ya sabran es un framework PHP desarrollado por mi, la idea tras su desarrollo era no depender de otros frameworks como Zend o Symfony, y ademas contar con un poder similar.

Antes de continuar les invito a leer el articulo anterior sobre LegoBox.

http://evilnapsis.com/2015/05/28/introduccion-a-legobox/

Tambien vamos a descargar la version 3.6 de LegoBox, ojo por que ya existe una version mas nueva, pero aun esta en pruebas.

LegoBox 3.6: http://github.com/evilnapsis/legobox

Estructura

Vamos a hablar sobre la estructura en la que esta conformada esta version y tambien hablaremos sobre aquellos archivos importantes.

  • core/
    • controller/
      • Action.php
      • Bootload.php
      • Cookie.php
      • Core.php
      • Database.php
      • Lb.php
      • Model.php
      • Session.php
      • View.php
    • modules/
      • index/
        • action/
        • boot/
        • model/
        • res/
        • view/
        • autoload.php
        • init.php
        • superboot.php
    • autoload.php
  • res/

Core

El nucleo de legobox 3.6 esta compuesto en 2,controller y modules.

En controller esta todo lo relacionado con el funcionamiento interno de legobox 3.6 y en modules esta todo lo relacionado con la aplicacion o sistema que estemos desarrollando.

Controller

Cada uno de los archivos encontrados en la carpeta core/controller hacen una tarea especifica, sin embargo describiremos cada tarea mas adelante.

Modules

Modules contiene el codigo de la aplicacion en desarrollo, aqui existe una subestructura de directorios compuesta de la siguiente manera:

  • modulo (miapp/)
    • Acciones (action/)
      • Nombre de la accion en carpeta ( miaccion/)
        • Codigo de la accion (action-default.php)
    • Codigos de inicio (boot/)
      • Nombre de la vista en carpeta (mivista/)
        • Codigo que se ejecutara al inicio (boot-default.php)
    • Modelo de la base de datos (model/)
      • Archivos que simulan una entidad de la base de datos (TableData.php)
    • Vistas (view/)
      • Nombre de la vista en carpeta (mivista/)
        • Codigo de la vista (widget-default.php)
      • Layout por defecto (layout.php)
    • Autoload del modulo (autoload.php)
    • Inicializador del modulo (init.php)
    • Superboot (superboot.php)

Acciones

Las acciones se ejecutan en base al parametro GET action, son muy similares a las vistas, sin embargo estas no ejecutan un layout por lo que solo ejecutan codigo sin mostrar una vista.

Codigos de Inicio

Los codigos de inicio o boots son codigos que se ejecutan primero al cargar una vista, puede usarse para verificar permisos o precargar datos , etc.

Modelo de la base de datos

En legobox 3.6 se manejan un archivo por cada tabla, estos archivos tienen la nomenclatura (Nombre de la Tabla)Data.php, donde Nombre de la tabla se sustituye de la siguiente manera, UserData.php, PostData.php, …, dependiendo del nombre de la tabla.

Se puede obserbar el uso del formato CamelCase, por lo tanto si el nombre de la tabla esta compuesto por 2 palabras entonces el modelo seria: UserTypeData.php, UserPostData.php.

Mas adelante tendremos un apartado sobre la contruccion de los modelos.

Vistas

Las vistas son la Joya de la corona, son las pantallas que se mostraran, regida por el parametro GET[“view”]

Layouts

Los layouts son simples plantillas para evitar cargar todo el codigo en las Vistas, se usa el layout para precargar javascripts, css y el codigo base, ideal para implementar los paneles de administracion.

Autoload del modulo

Se encarga de precargar las clases necesarias dentro del modulo en cuestion, para no tener que estar incluyendo nada.

Inicializador del modulo

Es el encargado de cargar los boots, superboot, views, layout y actions.

Superboot

Contiene un codigo que se ejecuta en todas las vistas sin excepcion.

Secuencia de Arranque

La secuencia de arranque de legobox es la siguiente

Todo empieza en el archivo index.php de raiz de la aplicaciones.

Cargar el Core Autoload

include “core/autoload.php”;

Instancia Lb

$lb = new Lb();

$lb->loadModule(“index”);

Aqui le decimos al framework que modulo vamos a cargar.

Cargar el modulo

En base al modulo que se cargara se ejecuta el inicializador del modulo core/modules/nombre del modulo/init.php

El inicializador del modulo carga lo siguiente:

  • Si es una vista
    • Se obtiene el valor GET[“view”] para determinar la vista
    • Se carga el superboot
    • Despues el boot correspondiente a la vista
    • El layout
      • Dentro del layout se carga la vista
  • Si es un action o accion
    • Se obtiene el valor GET[“action”]
    • Se carga el action correspondiente

Conclusion

LegoBox 3.6 no es el framework perfecto, pero si esta dotado de cierta simplicidad que hace que desarrolles software rapidamente, esa simplicidad que ayuda sobre todo a poder hackearlo y adaptarlo a tus necesidades.

En un siguiente pos hablare mas sobre legobox.

Agustin Ramos

Desarrollador de Software

Leave a Reply