Beta2 scaffold

De KumbiaPHP Framework Wiki
Saltar a: navegación, buscar

Scaffold para KumbiaPHP beta 2[editar]

Scaffold para Kumbiaphp beta 2




Introducción[editar]

Para empezar es importante saber que el Scaffold se utilizó hasta la versión estable de Kumbiaphp 0.5 y que al salir la versión de Kumbiaphp 1.0 Spirit beta 1 se dejó a un lado.

Viendo la necesidad y las facilidades que el Scaffold proporciona al apoyo de aplicaciones, el equipo de desarrollo de Kumbiaphp vuelve a incorporar un nuevo Scaffold para su versión en prueba KumbiaPHP beta 2, mejorando y robusteciendo el desempeño del Scaffold para el Framework y que sin duda aporta a un gran avance en cualquier desarrollo de aplicación para usuarios iniciados en el uso de Kumbiaphp y usuarios avanzados, entregando para todos una gama alta de posibilidades.

Concepto[editar]

Scaffold es un método de meta-programación para construir aplicaciones de software que soportan bases de datos. Esta es una nueva técnica soportada por algunos frameworks del tipo MVC (Modelo-Vista-Controlador), donde el programador debe escribir una especificación que escriba como debe ser usada la aplicación de bases de datos. El compilador luego usara esta para generar un código que pueda usar la aplicación para leer, crear, actualizar y borrar entradas de la base de datos (algo conocido como CRUD o ABM), tratando de poner plantillas como un andamio Scaffold) en la cual construir una aplicación mas potente. Scaffolding es la evolución de códigos genereadores de bases de datos desde ambientes mas desarrollados, como ser CASE Generator de Oracle y otros tantos servidores 4GL para servicios al Cliente. Scaffolding se hizo popular gracias al framework "Ruby on Rails", que ha sido adptado a otros frameworks, incluyendo Django, Monorail, KumbiaPHP framework entre otros.

Tomado de: Scaffolding Kumbiaphp

Objetivo[editar]

Crear un CRUD 100% Funcional con tan solo 2 líneas de código en mi controller.

Kumbiaphp beta2, Tomará como por arte de magia los parámetros indicados en mi TABLA y armará todo el CRUD.


Primeros Pasos[editar]

Para realizar nuestro primer Scaffold, vamos a utilizar el mismo modelo que trabajamos en el CRUD para KumbiaPHP Beta2, y que tiene por nombre menus.

Modelo[editar]

Crear el modelo, como de costumbre apuntando siempre a la clase ActiveRecord.

[app]/models/menus.php:

<?php
class Menus extends ActiveRecord{
 
}


Controlador[editar]

Crear el Controlador en este ejemplo, NO apuntaremos a la clase AppController y SI a la clase ScaffoldController

[app]/controllers/menus_controller.php:

  1. <?php
  2. class MenusController extends ScaffoldController{
  3.     public $model = 'menus';
  4. }

Aquí terminan nuestros primeros pasos. No es necesario MAS NADA, Tendremos por arte de magia un CRUD 100% Funcional.

Ventajas[editar]

1. Podremos ir cargando nuestros primeros registros en la BD

2. Pruebas al insertar registros

3. Avance progresivo, ya que podremos ir sustituyendo las vistas del Scaffold por mis propias vistas.

Desventaja[editar]

1. El Scaffold no es para hacer sistemas, si no para ayudar al principio de una aplicación.

Views para el scaffold[editar]

Por defecto usa los de views/_shared/scaffolds/kumbia/... Uno puede crear los suyos dentro de scaffolds views/_shared/scaffolds/foo/... y en el controller ademas del atributo $model añade; public $scaffold = 'foo';

Asi usara los views de scaffolds/foo/...

Mas importante es todavia, que uno puede crear sus views como siempre. es decir, si creas el controller MiController y creas el view en views/mi/editar.phtml (por ejemplo) usara primero el view, si no existe usara el de scaffolds. Asi uno cambia los views a su gusto donde quiera y progresivamente.


Ejemplo de Funcionamiendo[editar]

Asi queda en este ejemplo vamos a mostrar el scaffold de categorias


Este es nuestro modelo se llama categorias.php

Scanffold 03 modelo.png

Este es nuestro controlador se llama categoria_controller.php

Scanffold04 controlador.png

no hay necesidad de hacer una vista pero si se quiere se puede hacer XD

Scanffold 01.png

Editar categoria

Scanffold 02 editar.png