Diferencia entre revisiones de «English Manual KumbiaPHP Framework 1.0 Index»

De KumbiaPHP Framework Wiki
(→‎Instalar Kumbia: Traduccion de titulares)
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 29: Línea 29:
 
= GETTING STARTED WITH KUMBIA PHP FRAMEWORK =
 
= GETTING STARTED WITH KUMBIA PHP FRAMEWORK =
  
== [[Instalar_Kumbia|Instalar Kumbia ]] ==
+
== [[English_Instalar_Kumbia|Installing Kumbia]] ==
  
#[[Instalar_Kumbia#Requisitos|Requisitos]]
+
#[[English_Instalar_Kumbia#Requirements|Requirements]]
#[[Instalar_Kumbia#Descargar_Kumbia|Descargar Kumbia]]
+
#[[English_Instalar_Kumbia#Download_Kumbia|Download Kumbia]]
#[[Instalar_Kumbia#Configuraci.C3.B3n_de_m.C3.B3dulos_.28_apache.2C_php_y_bbdd_.29|Configuración de módulos (Apache, PHP y bbdd)]]
+
#[[English_Instalar_Kumbia#Module_Configuration.28_apache.2C_php_y_bbdd_.29|Module Configuration (Apache, PHP y bbdd)]]
##[[Instalar_Kumbia#Configurando_Apache|Configurando Apache]]
+
##[[English_Instalar_Kumbia#Configurando_Apache|Configurando Apache]]
###[[Instalar_Kumbia#.C2.BFPor_qu.C3.A9_es_importante_Mod-Rewrite.3F|¿Por qué es importante Mod-Rewrite?]]
+
###[[English_Instalar_Kumbia#.C2.BFPor_qu.C3.A9_es_importante_Mod-Rewrite.3F|¿Por qué es importante Mod-Rewrite?]]
##[[Instalar_Kumbia#Configuraci.C3.B3n_de_PHP|Configuración de PHP]]
+
##[[English_Instalar_Kumbia#Configuraci.C3.B3n_de_PHP|Configuración de PHP]]
###[[Instalar_Kumbia#.C2.BFPorque_Kumbia_utiliza_PHP5.3F|¿Porque Kumbia utiliza PHP5?]]
+
###[[English_Instalar_Kumbia#.C2.BFPorque_Kumbia_utiliza_PHP5.3F|¿Porque Kumbia utiliza PHP5?]]
##[[Instalar_Kumbia#Configurando_BB.DD|Configurando BB.DD]]
+
##[[English_Instalar_Kumbia#Configurando_BB.DD|Configurando BB.DD]]
###[[Instalar_Kumbia#Configuraci.C3.B3n_de_MySQL|Configuración de MySQL]]
+
###[[English_Instalar_Kumbia#Configuraci.C3.B3n_de_MySQL|Configuración de MySQL]]
###[[Instalar_Kumbia#Configurando_Oracle|Configurando Oracle]]
+
###[[English_Instalar_Kumbia#Configurando_Oracle|Configurando Oracle]]
#[[Instalar_Kumbia#Configurar_XAMPP|Configurar XAMPP]]
+
#[[English_Instalar_Kumbia#Configurar_XAMPP|Configurar XAMPP]]
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]]
+
##[[English_Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]]
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]]
+
##[[English_Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]]
##[[Instalar_Kumbia#IInstalando XAMPP bajo Debian/Ubuntu Linux|Instalando XAMPP bajo Debian/Ubuntu Linux]]
+
##[[English_Instalar_Kumbia#IInstalando XAMPP bajo Debian/Ubuntu Linux|Instalando XAMPP bajo Debian/Ubuntu Linux]]
#[[Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]]
+
#[[English_Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]]
#[[Instalar_Kumbia#Verificar la instalación de Kumbia|Verificar la instalación de Kumbia]]
+
#[[English_Instalar_Kumbia#Verificar la instalación de Kumbia|Verificar la instalación de Kumbia]]
##[[Instalar_Kumbia#Instalar Kumbia PHP en producción de forma segura| Instalar Kumbia PHP en producción de forma segura]]
+
##[[English_Instalar_Kumbia#Instalar Kumbia PHP en producción de forma segura| Instalar Kumbia PHP en producción de forma segura]]
  
 
== [[Estructura_de_Kumbia|Kumbia Structure]] ==
 
== [[Estructura_de_Kumbia|Kumbia Structure]] ==
Línea 250: Línea 250:
 
Shows a view belonging to the same controller.
 
Shows a view belonging to the same controller.
  
'''Examples:'''
+
'''Example:'''
 
  <?php
 
  <?php
 
     class ProductsController extends ApplicationController {
 
     class ProductsController extends ApplicationController {
Línea 257: Línea 257:
 
       }
 
       }
 
     } //end of class
 
     } //end of class
?>
+
?>
  
 
In this case, the view views/products/list.phtml will be rendered.
 
In this case, the view views/products/list.phtml will be rendered.
  
 
== redirect($url, $seconds=0.5) ==
 
== redirect($url, $seconds=0.5) ==
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado
+
Wait $seconds, then redirect to another url.
  
'''Ejemplos de uso:'''
+
'''Example:'''
<?php
+
<?php
   class ProductosController extends ApplicationController {
+
   class ProductsController extends ApplicationController {
 
       function index(){
 
       function index(){
         $this->redirect('facturas/nueva', 2);
+
         $this->redirect('tickets/new', 2);
 
       }
 
       }
 
   }
 
   }
?>
+
?>
  
En el ejemplo va a facturas/nueva después de 2 segundos
+
The browser will go to tickets/new 2 seconds later
  
 
== post($value) ==
 
== post($value) ==
  
    Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar
+
Object oriented access to $_POST[$value].
al array asociativo.
 
  
 
== get($value) ==
 
== get($value) ==
  
    Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para
+
Object oriented access to $_GET[$value].
pasar al array asociativo.
 
  
 
== request($value) ==
 
== request($value) ==
  
    Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al
+
Object oriented access to $_REQUEST[$value].
array asociativo.
 
  
 
== render_partial($name) ==
 
== render_partial($name) ==
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:
+
Render the partial view belonging to the same controller. Example:
  
'''Ejemplos de uso:'''
+
'''Example:'''
<?php
+
    <?php
     class ProductosController extends ApplicationController {
+
     class ProductsController extends ApplicationController {
 
         function index(){
 
         function index(){
             $this->render_partial('mostrar_menu');
+
             $this->render_partial('show_menu');
         }//fin del metodo
+
         }//end of method
     }//fin de la clase
+
     }//end of class
?>
+
    ?>
  
    En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml
+
The above example will output the partial view views/products/_show_menu.phtml
  
== route_to([params: valor]) ==
+
== route_to([params: value]) ==
  Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los parámetros
+
Redirect from a controller to another or from an action to another. The parameters are:
con nombre:
+
*controller: Destination controller to do the redirect.
      • controller: A qué controlador se va a redireccionar
+
*action: Destination action to do the redirect
      • action: A que acción se va a redireccionar
+
*id: route id
      • id: Id de la redirección
 
  
'''Ejemplos:'''
+
'''Example:'''
return $this->route_to("controller: clientes", "action: consultar", "id:1");
+
    return $this->route_to("controller: clients", "action: query", "id:1");
  
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación.
+
The redirects are internal ones, meaning the users will not realize they are been redirected.
  
 
== redirect($url_controlador) ==
 
== redirect($url_controlador) ==
    Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando queremos hacer
+
Do a redirect to another controller or action using HTTP. This is a "real" redirect to another
una real redirección que incluso cambie la URL que aparece en el
+
HTML page. The URL page changes in the user browser.
explorador.
 
  
'''Ejemplo:'''
+
'''Example:'''
$this->redirect(/productos/query”);
+
    $this->redirect("/products/query");
  
 
== cache_layout($minutes) ==
 
== cache_layout($minutes) ==
    Caché de la vista views/layout/ correspondiente al controlador durante $minutes.
+
Cache the view views/layout/ belonging to the controller for $minutes.
  
 
== not_found($controller, $action) ===
 
== not_found($controller, $action) ===
    Puedes definir el método not_found en cualquier controlador, en caso de estar definido se llamará
+
Optional method. It could be defined in any controller. If not_found method is defined then it will
cuando no encuentre definida alguna acción así es más fácil controlar este tipo de errores:
+
be called every time some action is not found. This is useful to process this kind of errors.
  
''' Ejemplo '''
+
'''Example'''
<?php
+
<?php
     class PruebaController extends ApplicationController {
+
     class TestController extends ApplicationController {
 
         function index(){
 
         function index(){
             $this->render_text("Este es el index");
+
             $this->render_text("This is the index");
 
         }
 
         }
 
         function not_found($controller, $action){
 
         function not_found($controller, $action){
             Flash::error("No esta definida la accion $action, redireccionando a index...");
+
             Flash::error("I am sorry. The action $action is not defined, redirecting to index...");
 
             return $this->route_to('action: index');
 
             return $this->route_to('action: index');
 
         }
 
         }
 
     }
 
     }
?>
+
?>
NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto
+
 
hace que no se haga necesario la implementacion del metodo not_found, ya que cuando no exista un controller o una acción se renderizara dicha vista, esta puede ser totalmente personalizada de manera que sea mas comodo el desarrollo.
+
'''Note''': There is in the 0.5 version a default view views/not_found.phtml
 +
with the same behaviour for the whole application. If not_found method is not
 +
implemented in a controller, the views/not_found.phtml actionn will be
 +
executed. Using this default action speeds up the development.
  
 
== set_response($type)==
 
== set_response($type)==
    Especifica el tipo de respuesta que va a generar el controlador. Cuando es el valor de $type
+
Set the controlled generated answer type.  
es view solamente envía la salida de la vista más no del layout, el template o cualquier cabecera
+
 
html. Es ideal en salidas AJAX o PDF. Otro valor para $type es XML.
+
If $type is "view" then kumbiaPHP will
 +
output the view only without layout, template or any html header. This is useful
 +
to generate AJAX or PDF output.
 +
 
 +
Another $type value is "XML".
  
'''Ejemplo'''
+
'''Example'''
<?php
+
<?php
     class PruebaController extends ApplicationController {
+
     class TestController extends ApplicationController {
 
         function accion_ajax(){
 
         function accion_ajax(){
             $this->set_response(“view”);
+
             $this->set_response("view");
 
         }
 
         }
 
     }
 
     }
?>
+
?>
  
== is_alnum($valor) ==
+
== is_alnum($value) ==
Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al
+
Checks if $value is alphanumeric. Useful for user input validation.
recibirlos por parte de usuarios.
 
  
<?php
+
<?php
     class PruebaController extends ApplicationController {
+
     class TestController extends ApplicationController {
         function adicionar(){
+
         function add(){
           $nombre = $this->request(“nombre”);
+
           $price = $this->request("price");
           if($this->is_alnum($nombre)==false){
+
           if($this->is_alnum($price)==false){
               Flash::error(“Entrada invalidad para precio”);
+
               Flash::error("price has not a valid value");
 
               return;
 
               return;
 
             }
 
             }
Línea 375: Línea 376:
 
       }
 
       }
 
   }
 
   }
?>
+
?>
  
== load_reacord($record) ==
+
== load_record($record, $args...) ==
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe
+
Load the fields in a ActiveRecord record like controller attributes. The parameters are:
como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un
 
string este debe corresponder al nombre de un modelo Soporta argumento variable.
 
    field: campos a cargar separados por coma
 
    except: campos que no se cargaran separados por coma
 
    suffix: sufijo para el atributo en el controlador
 
    preffix: prefijo para el atributo en el controlador
 
  
//Ejemplo1:
+
* $record, ActiveRecord or a string ActiveRecord record to load. If the parameter is a string then it must be a name of a model.
$usuario = $this->Usuario->find(1);
+
* $args, optional parameters:
$this->load_record($usuario);
+
** field: comma separated field names to load
 +
** except: comma separated field name to NOT load.
 +
** suffix: suffix for the attribute in the controller
 +
** preffix: preffix for the attribute in the controller
  
//Ejemplo2:
+
'''Examples'''
$usuario = $this->Usuario->find(1);
+
'''Example 1'''
$this->load_record($usuario, 'except: id, sexo');
+
$user = $this->User->find(1);
 +
$this->load_record($user);
  
//Ejemplo3:
+
'''Example 2'''
$usuario = $this->Usuario->find(1);
+
$user = $this->User->find(1);
$this->load_record($usuario, 'field: nombre, apellido');
+
$this->load_record($user, 'except: id, sex');
  
//Ejemplo4:
+
'''Example 3'''
$usuario = $this->Usuario->find(1);
+
$user = $this->User->find(1);
$this->load_record($usuario, 'preffix: c_');
+
$this->load_record($user, 'field: name, lastname');
  
//Ejemplo5:
+
'''Example 4'''
$this->load_record('Usuario');
+
$user = $this->User->find(1);
 +
$this->load_record($user, 'preffix: c_');
  
//Ejemplo6:
+
'''Example 5'''
$this->load_record('Usuario', 'field: nombre, apellido');
+
$this->load_record('User');
  
== is_numeric($valor) ==
+
'''Example 6'''
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
+
$this->load_record('User', 'field: name,lastname');
  
<?php
+
== is_numeric($value) ==
     class PruebaController extends ApplicationController {
+
Checks if $value is numeric. This method is useful for user input validation.
       function adicionar(){
+
 
           $precio = $this->request(“precio”);
+
'''Example'''
           if($this->is_numeric($precio)==false){
+
<?php
                 Flash::error(“Entrada invalida para precio”);
+
     class TestController extends ApplicationController {
 +
       function add(){
 +
           $price = $this->request("price");
 +
           if($this->is_numeric($price)==false){
 +
                 Flash::error(“Ivalid price input”);
 
                 return;
 
                 return;
 
           }
 
           }
Línea 422: Línea 426:
 
       }
 
       }
 
     }
 
     }
?>
+
?>
  
 
===[[Obtener valores desde el controller]] ===
 
===[[Obtener valores desde el controller]] ===

Revisión actual del 16:55 23 oct 2009

This manual is an english port of Manual Kumbia PHP Framework. It is work in progress. You are free to help to improve it.

Until the work is finished, the manual will have spanish text mixed with english text. You are free to help us with the translation :-).


AGRADECIMIENTOS[editar]

   Este manual es para agradecer a quienes con su tiempo y apoyo en gran o en poca medida han ayudado a que este framework sea cada día mejor.
   A todos ellos Gracias Totales:
      Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com
      Deivinson Tejeda deivinsontejeda@kumbiaphp.com
      Emilio Silveira emilio.rst@kumbiaphp.com
      César Caballero aka Phillipo phillipo@kumbiaphp.com
   Y a toda la comunidad que rodea a Kumbia, con sus preguntas, notificaciones de errores(Bug's), aportaciones, etc...

PREFACIO[editar]

  1. Sobre este libro
  2. Sobre Kumbia
  3. Sobre la comunidad
  4. Historia de Kumbia
  5. Que aporta Kumbia
  6. ¿Porque usar Kumbia?
  7. Modelo, Vista, Controlador (MVC)
    1. ¿Que es?
    2. Implementación y uso
    3. Información adicional
    4. Caso práctico

GETTING STARTED WITH KUMBIA PHP FRAMEWORK[editar]

Installing Kumbia[editar]

  1. Requirements
  2. Download Kumbia
  3. Module Configuration (Apache, PHP y bbdd)
    1. Configurando Apache
      1. ¿Por qué es importante Mod-Rewrite?
    2. Configuración de PHP
      1. ¿Porque Kumbia utiliza PHP5?
    3. Configurando BB.DD
      1. Configuración de MySQL
      2. Configurando Oracle
  4. Configurar XAMPP
    1. Instalando XAMPP bajo Windows
    2. Instalando XAMPP bajo GNU/Linux
    3. Instalando XAMPP bajo Debian/Ubuntu Linux
  5. Configurar Apache2Triad
  6. Verificar la instalación de Kumbia
    1. Instalar Kumbia PHP en producción de forma segura

Kumbia Structure[editar]

  1. Introducción
  2. Directorios de entorno
    1. Explicación
  3. Archivos de entorno
    1. config.ini
      1. Explicación de los parámetros ./config/config.ini
    2. environment.ini
      1. Estructura del archivo ./config/environment.ini
      2. Explicación de los parámetros ./config/environment.ini
    3. routes.ini
      1. Explicación de los parámetros ./config/routes.ini
      2. Gestionar extensiones. Ejemplo práctico
  4. Resumen

Características avanzadas[editar]

  1. ¡Parámetros con Nombre!
  2. Obtener valores en una aplicación Kumbia
  3. Uso de Paquetes (Namespaces)
  4. Programación modular

Primera Aplicación en Kumbia[editar]

  1. Creando una nueva aplicación
  2. Hola Kumbia
  3. Kumbia URLS
  4. Nuestra Primera Acción
  5. Agregando más Contenido
  6. Repitiendo la Historia

WORKING WITH KUMBIA PHP FRAMEWORK[editar]

MODELOS[editar]

  1. Introducción
  2. ¿Por qué usar una capa de Abstracción?
  3. Capa de Abstracción Independiente en Kumbia
  4. Adaptadores Kumbia
  5. Esquema de Acceso a BB.DD en Kumbia
  6. Modelos
    1. Características de los modelos:
    2. Acceso Directo a RDBMS
      1. La Clase DdBase
      2. Propiedades de la Clase DB
        1. $db->Id_Connection
        2. $db->dbUser
        3. $db->dbPass
        4. $db->dbHost
        5. $db->dbName
        6. $db->dbPort
        7. $db->lastError
        8. $db->lastResultQuery
      3. Métodos de la Clase DB
        1. connect()
        2. query()
        3. close()
        4. fetch_array()
        5. field_name()
        6. data_seek()
        7. affected_rows()
        8. error()
        9. no_error()
        10. find()
        11. in_query()
        12. in_query_assoc()
        13. in_query_num()
        14. fetch_one()
        15. table_exists()

ACTIVE RECORD[editar]

  1. Ventajas del ActiveRecord
  2. Crear un Modelo en Kumbia PHP Framework
  3. Columnas y Atributos
  4. Llaves Primarias y el uso de IDs

CRUD: Create, Read, Update, Delete[editar]

  1. Creando Registros
  2. Consultando Registros
  3. El poderoso Find
  4. Promedio, Contando, Sumando, Mínimo y Máximo
  5. Actualizando Registros existentes
  6. Borrando Registros
  7. Propiedades Soportadas

Convenciones en ActiveRecord[editar]

  1. Convenciones Generales
  2. id
  3. campo_id
  4. campo_at
  5. campo_in

Convenciones para RDBMs[editar]

  1. Convenciones Especiales para PostgreSQL
  2. Convenciones Especiales para Oracle

ACTIVE RECORD API[editar]

This is a reference of the methods in ActiveRecord class sorted in alphabetic order:

Consultas[editar]

Métodos para hacer consulta de Registros:

  1. distinct
  2. find_all_by_sql(string $sql)
  3. find_by_sql(string $sql)
  4. find_first
  5. find
  6. select_one(string $select query)
  7. select_one(string $select query) (static)
  8. exists
  9. find_all_by
  10. find_by_*campo*
  11. find_all_by_*campo*

Conteos y Sumatorias[editar]

  1. count
  2. sum
  3. count_by_sql

Promedios, Máximo y Mínimo[editar]

  1. average
  2. maximum
  3. minimum

Creación-Actualización-Borrado de Registros[editar]

  1. create
  2. update
  3. update_all
  4. save
  5. create_from_request
  6. save_from_request
  7. delete
  8. delete_all

Validación[editar]

  1. validates_presence_of
  2. validates_length_of
  3. validates_numericality_of
  4. validates_email_in
  5. validates_uniqueness_of
  6. validates_date_in
  7. validates_format_of

Transacciones[editar]

  1. commit()
  2. begin()
  3. rollback()

Otros Métodos[editar]

  1. sql(string $sql)

Callbacks ActiveRecord[editar]

  1. Introduccion
  2. before_validation
  3. before_validation_on_create
  4. before_validation_on_update
  5. after_validation_on_create
  6. after_validation_on_update
  7. after_validation
  8. before_save
  9. before_update
  10. before_create
  11. after_update
  12. after_create
  13. after_save
  14. before_delete
  15. after_delete

Asociaciones[editar]

  1. Introducción
  2. Pertenece (belongs_to)
  3. Tiene un (has_one)
  4. Tiene muchos (has_many)
  5. Tiene y pertenece a muchos (has_and_belongs_to_many)

Paginadores[editar]

  1. Paginate
  2. Paginate_by_sql
  3. Paginando en ActiveRecord
  4. Ejemplo completo de uso del paginador

APPLICATION CONTROLLER[editar]

Métodos de la Clase ApplicationController[editar]

This class has several useful methods to work with controllers.

ApplicationController Class Methods[editar]

This class has several useful methods to work with controllers.

render($view)[editar]

Shows a view belonging to the same controller.

Example:

<?php
   class ProductsController extends ApplicationController {
      function index(){
         $this->render('list');
      }
    } //end of class
?>

In this case, the view views/products/list.phtml will be rendered.

redirect($url, $seconds=0.5)[editar]

Wait $seconds, then redirect to another url.

Example:

<?php
  class ProductsController extends ApplicationController {
     function index(){
        $this->redirect('tickets/new', 2);
     }
  }
?>

The browser will go to tickets/new 2 seconds later

post($value)[editar]

Object oriented access to $_POST[$value].

get($value)[editar]

Object oriented access to $_GET[$value].

request($value)[editar]

Object oriented access to $_REQUEST[$value].

render_partial($name)[editar]

Render the partial view belonging to the same controller. Example:

Example:

   <?php
   class ProductsController extends ApplicationController {
       function index(){
           $this->render_partial('show_menu');
       }//end of method
    }//end of class
   ?>

The above example will output the partial view views/products/_show_menu.phtml

route_to([params: value])[editar]

Redirect from a controller to another or from an action to another. The parameters are:

  • controller: Destination controller to do the redirect.
  • action: Destination action to do the redirect
  • id: route id

Example:

   return $this->route_to("controller: clients", "action: query", "id:1");

The redirects are internal ones, meaning the users will not realize they are been redirected.

redirect($url_controlador)[editar]

Do a redirect to another controller or action using HTTP. This is a "real" redirect to another HTML page. The URL page changes in the user browser.

Example:

   $this->redirect("/products/query");

cache_layout($minutes)[editar]

Cache the view views/layout/ belonging to the controller for $minutes.

not_found($controller, $action) =[editar]

Optional method. It could be defined in any controller. If not_found method is defined then it will be called every time some action is not found. This is useful to process this kind of errors.

Example

<?php
   class TestController extends ApplicationController {
       function index(){
           $this->render_text("This is the index");
       }
       function not_found($controller, $action){
           Flash::error("I am sorry. The action $action is not defined, redirecting to index...");
           return $this->route_to('action: index');
       }
   }
?>

Note: There is in the 0.5 version a default view views/not_found.phtml with the same behaviour for the whole application. If not_found method is not implemented in a controller, the views/not_found.phtml actionn will be executed. Using this default action speeds up the development.

set_response($type)[editar]

Set the controlled generated answer type.

If $type is "view" then kumbiaPHP will output the view only without layout, template or any html header. This is useful to generate AJAX or PDF output.

Another $type value is "XML".

Example

<?php
   class TestController extends ApplicationController {
       function accion_ajax(){
           $this->set_response("view");
       }
   }
?>

is_alnum($value)[editar]

Checks if $value is alphanumeric. Useful for user input validation.

<?php
   class TestController extends ApplicationController {
       function add(){
          $price = $this->request("price");
          if($this->is_alnum($price)==false){
              Flash::error("price has not a valid value");
              return;
           }
          /* ..*/
      }
  }
?>

load_record($record, $args...)[editar]

Load the fields in a ActiveRecord record like controller attributes. The parameters are:

  • $record, ActiveRecord or a string ActiveRecord record to load. If the parameter is a string then it must be a name of a model.
  • $args, optional parameters:
    • field: comma separated field names to load
    • except: comma separated field name to NOT load.
    • suffix: suffix for the attribute in the controller
    • preffix: preffix for the attribute in the controller

Examples Example 1

$user = $this->User->find(1);
$this->load_record($user);

Example 2

$user = $this->User->find(1);
$this->load_record($user, 'except: id, sex');

Example 3

$user = $this->User->find(1);
$this->load_record($user, 'field: name, lastname');

Example 4

$user = $this->User->find(1);
$this->load_record($user, 'preffix: c_');

Example 5

$this->load_record('User');

Example 6 $this->load_record('User', 'field: name,lastname');

== is_numeric($value) ==

Checks if $value is numeric. This method is useful for user input validation.

Example

<?php
   class TestController extends ApplicationController {
      function add(){
          $price = $this->request("price");
          if($this->is_numeric($price)==false){
               Flash::error(“Ivalid price input”);
               return;
          }
          /* ..*/
      }
   }
?>

Obtener valores desde el controller[editar]

ApplicationControllerBase (Clase padre)[editar]

Enrutamiento y redirecciones[editar]

VISTAS Y HELPERS[editar]

  1. ¿Porque usar vistas?

Vistas[editar]

Layouts[editar]

Templates[editar]

Partials[editar]

CCS en KumbiaPHP[editar]

content()[editar]

Helpers[editar]

AJAX[editar]

EXTENSIONS (Módulos extras de KumbiaPHP)[editar]

Filter[editar]

  1. Qué es un Filtro?
  2. Utilización básica
  3. Métodos de la clase Filter

GENERADOR DE FORMULARIOS[editar]

  1. Tipos de Formularios
  2. Ventajas Generadores de Formularios
  3. Desventajas Generadores de Formularios

EJEMPLOS[editar]

GLOSARIO[editar]