⛓️ Controlador
Controladores
Los controladores son el intermediario entre la vista (Lo que ve el usuario) y el modelo (Interacción con la base de datos).
Los controladores proporcionan una serie de métodos que manejan las solicitudes. Estas son llamadas de acciones. cada método público en un controlador es una acción, y es accesible desde una URL.
Una acción es responsable de interpretar la solicitud y crear la respuesta. Por lo general, las respuestas tienen la forma de una vista rende-rizada, pero también hay otras formas de crear respuestas.
Cada controlador creado debe heredar de la clase Controller, el Controller es la clase principal para todos los controladores de la aplicación. Esta clase está incluida en la biblioteca principal de Ligne.
Acciones del controlador
Las acciones del controlador son responsables de convertir los parámetros de solicitud en una respuesta para el usuario que realiza la solicitud.
Por convención, Ligne presenta una vista con una versión modulada del nombre de la acción. Crearemos un controlador de tareas como ejemplo, en el crearemos las acciones allTack()
, create()
y edit()
Los archivos de vista de estas acciones serían /View/Tasks/alltask.php
, /View/Tasks/create.php
y /View/Tasks/edit.php
El nombre del archivo de vista convencional es la versión en minúscula de la acción.
Interactuando con Vistas
Los controladores interactúan con las vistas de varias maneras. Primero, pueden pasar datos a las vistas, usando setData()
. También puede decidir qué archivo de vista usar desde el controlador.
El método setData()
es la forma principal de enviar datos desde su controlador a su vista. Una vez que haya usado setData()
, se puede acceder a la variable en su vista:
El método setData()
también toma una matriz asociativa como su primer parámetro. A menudo, esto puede ser una forma rápida de asignar un conjunto de información a la vista.
El método render()
se llama al final de cada acción del controlador. Este método realiza toda la lógica de la vista (utilizando los datos que ha enviado utilizando el método setData()
), coloca la vista dentro del mismo layout.
El método render() admite un segundo parámetro el cual es utilizado para establecer el título de la página;
Este habitualmente se coloca en la etiqueta <title>
de <html>
en el layout
Otras acciones que puede ejecutar este método es renderizar archivos de vistas de otros controladores o si tiene su proyecto por separado puedes cargar el <head>
, <body>
y <footer>
por separado.
Note que se ha especificado una ruta dentro del directorio views
y el archivo que queremos cargar, pasamos el título de la página como null
y un tercer parámetro como true
, este último le indica a render que debe cargar un archivo de vista externo.
Interactuar con los modelos
Por convicción los modelos se añaden a los controladores en la cabecera de las clases controladoras utilizando la palabra reservada use
;
Inmediatamente se utiliza la instrucción use
en este caso del modelo Task
podrá realizar instancias de la clase. Note que el use es el namespace
de su clase. Los modelos se utilizarán siempre que sea necesaria la extracción de datos de la base de datos.
Puede aprender más sobre el auto-cargador PSR-4
Recibiendo datos por medio de GET y POST
Las acciones pueden recibir parámetros tanto por GET como por POST
GET
Tomaremos la acción (metodo) edit
como ejemplo, supongamos que el usuario ingreso a la vista de edición de una tarea con el ID 3
, una URL válida para esto sería la siguiente
http://localhost/app/tasks/edit/3
POST
Ahora suponemos que el usuario realizo las ediciones de la tarea y envió estos datos por medio de POST. Supondremos que los datos fueron enviados a una acción (método) nombrado updateTask
el cual procesara la solicitud del usuario.
Control de flujo
El método de control de flujo que usarás más a menudo es redirect()
. Este método toma su primer parámetro en forma de una URL relativa a Ligne. Cuando un usuario ha realizado un pedido con éxito, es posible que desee redirigir los a una pantalla de éxito.
También se puede rediccionar pasando parámetros por la URL, por ejemplo:
Esto nos lleva a la siguiente URL http://localhost/tasks/view/3
El Segundo parámetro que redirect()
admite es un parámetro para la URL
enviada.
También puede usar una URL relativa o absoluta
Last updated