Diferencia entre revisiones de «Beta2 scaffold»

De KumbiaPHP Framework Wiki
(Página creada con '== Scaffold para KumbiaPHP beta 2 == Scaffold para Kumbiaphp beta 2 {{cleanupbox |image=45px |texto ='''Este Artículo cumple con todos lo...')
 
Línea 52: Línea 52:
 
'''''[app]/controllers/menus_controller.php:'''''
 
'''''[app]/controllers/menus_controller.php:'''''
 
<source lang="php" line>
 
<source lang="php" line>
 +
<?php
 
class MenusController extends ScaffoldController{
 
class MenusController extends ScaffoldController{
 
     public $model = 'menus';
 
     public $model = 'menus';

Revisión del 15:05 9 dic 2011

Scaffold para KumbiaPHP beta 2

Scaffold para Kumbiaphp beta 2


{{#if:Information icon4.png |}}

{{#if:

|}}


{{#if: |}}

{{#if:

|}}


Introducción

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

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

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

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

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

[app]/models/menus.php:

<?php
class Menus extends ActiveRecord{
       
}


Controlador

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

[app]/controllers/menus_controller.php:

<?php
class MenusController extends ScaffoldController{
    public $model = 'menus';
}

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

Ventajas

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

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

Views para el scaffold

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.