Edición de «Application controller»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 247: Línea 247:
 
</source>
 
</source>
  
[[Categoría:Application Controller]]
+
='''Obtener valores desde el controller'''=
 +
 
 +
Las URLs de Kumbia están caracterizadas por tener varias partes cada una de ellas con una función conocida.
 +
 
 +
Para obtener desde un controlador los valores que vienen en la URL podemos usar algunas propiedades útiles en el controlador:
 +
 
 +
Ejemplo1:
 +
 
 +
'''http://www.kumbiaphp.com/aplicacion/productos/buscar/12'''
 +
 
 +
El sitio es: '''kumbiaphp.com'''
 +
 
 +
La aplicación es: '''aplicacion'''
 +
 
 +
El controlador es: '''productos'''
 +
 
 +
La acción es: '''buscar'''
 +
 
 +
El valor para id es: '''12'''
 +
 
 +
Nuestro controlador '''aplicación/productos_controller.php''' luce así:
 +
<source lang=php>
 +
<?php
 +
 
 +
class ProductosController extends ApplicactionController {
 +
 
 +
  public function buscar($id){
 +
    /* */
 +
  }
 +
}
 +
 
 +
?>
 +
</source>
 +
 
 +
Dentro del método buscar podemos obtener el valor de id osea 12 en nuestro ejemplo
 +
colocando un parámetro al controlador '''$id''' podemos recoger este valor y utilizarlo
 +
internamente.
 +
 
 +
Otras formas de hacer esto es utilizar los métodos '''post, get o request''' así:
 +
<source lang=php>
 +
public function buscar(){
 +
  $id = $this->request(“id”);
 +
  // o también
 +
  $id = $this->id;
 +
}
 +
</source>
 +
 
 +
=='''¿Cómo saber el nombre del controlador actual?'''==
 +
<source lang=php>
 +
public function buscar(){
 +
  $controlador = $this->controller_name;
 +
}
 +
</source>
 +
 
 +
=='''¿Cómo saber el nombre de la acción actual?'''==
 +
<source lang=php>
 +
public function buscar(){
 +
  $accion = $this->action_name;
 +
}
 +
</source>
 +
 
 +
Ahora veamos el siguiente ejemplo:
 +
 
 +
'''http://www.kumbiaphp.com/aplicacion/registro/buscar_fecha/2006/12/01'''
 +
 
 +
El sitio es: '''kumbiaphp.com'''
 +
 
 +
La aplicación es: '''aplicacion'''
 +
 
 +
El controlador es: '''registro'''
 +
 
 +
La acción es: '''buscar_fecha'''
 +
 
 +
La mejor forma de recoger estos valores es de la siguiente forma:
 +
<source lang=php>
 +
<?php
 +
 
 +
class RegistroController extends ApplicactionController {
 +
 
 +
  public function buscar_fecha($año, $mes, $dia){
 +
    /* */
 +
  }
 +
}
 +
 
 +
?>
 +
</source>
 +
 
 +
Como vemos los valores adicionales en la URL son automáticamente agregados como
 +
parámetros en la acción del controlador.
 +
 
 +
=='''¿Que pasa con id en este ejemplo?'''==
 +
'''$id''' es el valor del primer parámetro siempre así que si nos referimos a éste,
 +
encontramos que tiene el valor 2006.
 +
 
 +
=='''¿Cómo puedo obtener los parámetros extra si no sé cuántos son?'''==
 +
Aquí usamos la propiedad del controlador '''$parameters''' que contiene estos valores así
 +
que el ejemplo podríamos reescribirlo así:
 +
 
 +
<source lang=php>
 +
<?php
 +
 
 +
class RegistroController extends ApplicactionController {
 +
 
 +
  public function buscar_fecha(){
 +
    $año = $this->parameters[0];
 +
    $mes = $this->parameters[1];
 +
    $dia = $this->parameters[2];
 +
    /* ... */
 +
  }
 +
}
 +
</source>
 +
 
 +
Por último podemos ver todos los parámetros que vienen en una url de Kumbia usando la
 +
propiedad del controlador '''$this->all_parameters'''. Una salida de esta variable en el
 +
ejemplo anterior con print_r muestra:
 +
<source lang=php>
 +
Array
 +
(
 +
[0] => registro
 +
[1] => buscar_fecha
 +
[2] => 2006
 +
[3] => 12
 +
[4] => 01
 +
)
 +
</source>
 +
 
 +
='''ApplicationControllerBase'''=
 +
 
 +
Es una clase definida en el archivo controllers/application.php, de esta forma:
 +
<source lang=php>
 +
<?php
 +
 
 +
class ControllerBase {
 +
 
 +
}//fin de la clase
 +
?>
 +
</source>
 +
 
 +
La clase tiene como objetivo permitir que se compartan ciertos métodos y atributos que
 +
deben estar disponibles para todos los controladores de la aplicación.
 +
<source lang=php>
 +
<?php
 +
 
 +
class ControllerBase {
 +
 
 +
  protected function seguridad(){
 +
    /* ... */
 +
  }
 +
 
 +
}//fin de la clase
 +
 
 +
?>
 +
</source>
 +
 
 +
y por ejemplo en el controlador productos podríamos usar este método así:
 +
 
 +
<source lang=php>
 +
<?php
 +
 
 +
class Productos extends ApplicationController {
 +
 
 +
  public function adicionar(){
 +
 
 +
    if($this->seguridad()){
 +
      /* .... */
 +
    }
 +
 
 +
  }
 +
 
 +
}//fin de la clase
 +
 
 +
?>
 +
</source>
 +
 
 +
El método seguridad ahora se encuentra disponible para cualquier controlador.

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)