Computers">
Framework Codeigniter Paso A Paso
Framework Codeigniter Paso A Paso
Framework Codeigniter Paso A Paso
Modelo
Se encarga de los datos, generalmente (pero no obligatoriamente) consultando la base de
datos. Actualizaciones, consultas, bsquedas, etc. todo eso va aqu, en el modelo.
Controlador
Se encarga de... controlar, recibe las rdenes del usuario y se encarga de solicitar los datos
al modelo y de comunicrselos a la vista.
Vistas
Son la representacin visual de los datos, todo lo que tenga que ver con la interfaz grfica
va aqu. Ni el modelo ni el controlador se preocupan de cmo se vern los datos, esa
responsabilidad es nicamente de la vista.
Como instalamos el CodeIgniter, es muy fcil solo debemos descomprimir el framework en
el servidor web en este caso si tenemos xampp lo descomprimimos en la carpeta htdocs y
le cambiamos el nombre por el nombre del proyecto que vamos a crear.
En este caso mi framework le cambie el nombre por el de clase_1, ahora vamos a modificar
el archivo apache (httpd.conf) como se muestra en la imagen a continuacin:
En la carpeta application es donde estn todas las configuraciones que vamos a trabajar.
Dentro de la carpeta application est otro archivo con el que vamos a trabajar que es donde
estn todas las configuraciones es la carpeta config.
Ahora vemos que el framework no me dice donde debo guardar las imgenes, css y js
entonces en la raz del framework creo una carpeta llamada public y dentro de ella creo tres
carpetas ms que son la images, css y js.
Debemos crear un archivo .htacces que lo vamos a crear en la raz del framework.
Que hace este archivo permite cargar toda la funcionalidad del framework que est
asociado al index
$config[index_page]= ;
Hagamos un hola mundo, las vistas se crean con la extensin .php en la carpeta views que
se encuentra en application y los controladores dentro de la carpeta application/controllers
y con extensin .php, como podemos ver hay un controlador llamado welcome.php y una
vista llamada welcome_message.php.
Vamos a ver cmo se comporta un controlador para el llamado de una vista. Entonces
vamos a la carpeta application/controllers y le sacamos una copia al controlador welcome:
Y lo renombramos el welcome-copia.php por el nombre de hola.php, ahora lo abrimos y
empezamos a hacer los cambios que se muestran a continuacin:
Como pueden ver el nombre de la clase la llame como el archivo pero la primera con
mayscula class Hola extends CI_Controller si ejecutamos en este momento el cambio
de nuestra clase hola nos seguira cargando el welcome del codeigniter veamos:
En el navegador coloque la siguiente url http://localhost/clase_2/index.php/hola, a donde
debemos ir si no queremos que nos cargue ese controlador por defecto, debemos ir a
application/config y abrimos el archivo config.php:
A este archivo le vamos a configurar nuestro controlador en este caso se llama hola y
reemplazamos el welcome por hola como veremos a continuacin:
Volvamos al controlador que tiene una clase y esta tiene mtodos:
Se cre la funcin saludo que me apunta a una vista llamada saludo, como se crea esta
vista pues puedes sacarle una copia al index que se encuentra en application/vistas y lo
renombras con el nombre de saludo.php
La abrimos y la modificamos con el texto hola desde la vista saludo. Veamos el resultado
en el navegador, digito localhost/clase_2/hola/saludo
Como podemos ver solo le estamos diciendo al controlador que me cargue una vista ahora
le diremos al controlador que me cargue datos a la vista. Creemos un array multiple para
pasarle datos a la vista, y como se lo paso a la vista entonces le decimos en el cotrolador
lo siguiente:
Si cargamos el navegador vemos que el resultado es igual ahora debemos pasar los
parmetros a la vista para que podamos ver el resultado del array:
localhost/clase_2/hola/saludo
Ahora vermos otra forma de cargar los arreglos en codeigniter, creamos otro mtodo
llamado otro y una vista llamada otro.php
Este error se genera porque las variables ttulo y bajada no estn definidas en el mtodo
otro que se defini en el controlador. Creo una variable llamada ttulo y se la paso al $this-
>load->view(otro, compact(titulo)); compact es una palabra reservada del lenguaje y
como pueden ver paso la variable ttulo sin el signo pesos adelante ($) ya que este lo toma
como una variable.
Si vamos al navegador ya solo me faltara corregir el error para la otra variable.
Ahora pasemos un array a ver qu sucede con nuestro controlador y vista. Modifiquemos
el cdigo de la vista otro para que nos cargue el array en nuestro navegador.
Y el resultado en el navegador es el siguiente:
Ejercicio
En este mismo framework cree otro controlador con otras vistas que me carguen por array
y por variables algn texto.
LAYOUT
Este tema es fundamental en cualquier framework ya que esto tiene que ver con el
diseo. No hay un mtodo nativo para lo layouts en codeigniter ya cada empresa
decide cmo trabajar el diseo de sus desarrollos web.
Este error se genera ya que no vamos a cargar ms nuestras vistas por el mtodo
load entonces si comentan la lnea $this->load->view('welcome_message'); ya no
se nos muestra el error.
Ahora vamos al controlador para ver como cargamos esa vista, le cargamos la vista
index al layout por el mtodo view. Y esa vista debe estar alojada en views.
Creemos otro mtodo dentro del controlador llamado nosotros y va cargar una vista
llamada nosotros.
Las funcionalidades de este archivo las carga desde el archivo layout.php que se
encuentra en application/libraries. Ahora modifico la vista index que se encuentra
dentro de la carpeta index y no le meto mucho cdigo html ya que este me lo coge
desde el template si cargamos nuestra pagina nos sale el mensaje que mandamos
desde la vista localhost/clase_3/
Ahora miremos el cdigo que me genera esta vista y veremos que es el cdigo que
est cargando desde el template1.php
Ahora creemos la vista para el otro mtodo que se llama nosotros y lo creamos
dentro de la carpeta index
Lo abrimos y le colocamos algn texto.
Y vemos en nuestro navegador que coge el titulo que le mande desde el controlador.
Y si cargamos nuestra vista index nos carga el titulo por defecto ejectalo en tu
navegador. Voy a utilizar los otros mtodos del layout.
Si ejecutamos la vista vemos que no hay cambios pero si miramos el cdigo fuente
de la pgina podemos ver que el template nos coge los cambios realizados en la
pgina.
Ahora veremos cmo cargar los css y js y las imgenes entonces debemos crear
una carpeta llamada public que estar en la raz del framework y contendr tres
carpetas que son js, css y images
Para poder mirar el ejemplo copio una imagen cualquiera en la carpeta images,
ahora creamos un archivo css y lo vamos a llamar estilos.css que se guarda en la
carpeta public/css
Ahora vamos a la vista y le vamos a cargar nuestro estilos.css
Y si cargamos la vista nosotros vemos que el efecto del css no se carga en el.
Si vemos el cdigo fuente el si carga la ruta absoluta pero como no lo hemos
cargado en la etiqueta <h1> entonces no veremos el css en accin en la vista.
Y el resultado es el siguiente:
Ahora en el controlador le vamos a indicar al mtodo nosotros que nos cargue las
funciones js, como estamos trabajando con el mtodo nostros le vamos a decir que
nos cargue una funcin js que se llama librera.js que vamos a crear en la carpeta
public/js.
Recuerden que yo esta funcin la estoy cargando desde el controlador y para esto
aca interviene el template1 que tiene su zona de funciones auxiliares que es donde
yo le digo que me cargue todas mis funciones y si cargamos el navegador y vemos
el cdigo fuente de la pagina vemos que dentro de auxiliares se carga la funcin
que se ha creado:
Podemos usar una tcnica comn que es en el controlador usar la funcin compact()
para hacer llamados de algn mensaje que se est guardando en una variable.
Luego hacemos el llamado de esa variable $saludito en la vista nosotros.php
EJERCICIO
Como siempre creamos nuestro proyecto que ustedes ya saben cmo se crea y
recuerde copiar nuestro archivo .htaccess en la raz del framework.
Si vamos al navegador se nos carga la pagina y podemos ver que se nos carga el
tag de form_open()
El form_open lo que hace es pasarme la ruta absoluta por medio del form_action.
Recuerde que debemos cerrar el formulario y para ello utilizaremos la siguiente
funcin form_close(). Y si miramos el resultado en el navegador ya se me crea el
tag </form>.
Ahora vamos a trabajar los mtodos y vamos a empezar con los campos ocultos.
Miremos nuestro formulario y como creamos este tipo de campo oculto
Y si miramos nuestro resultado en el navegador podemos ver que se crea nuestro
campo oculto y si miramos el cdigo fuente desde el navegador vemos que se crea
nuestro campo hidden
Miremos como podemos trabajar este campo de texto de forma mas ordenada y lo
trabajaremos como un arreglo
Tambin podemos crear funciones javascript veamos un ejemplo rpido. El
parmetro js lo pasamos como tercer parmetro dentro del form_input(). Ya usted
creara la funcin de javascript que no se mande el campo vacio.
Creemos nuestro campo de tipo upload para subir archivos a nuestro formulario y
lo ms importante es que en el type le debemos decir que es file
Veamos nuestro resultado http://localhost/clase_5/formulario
Dele clic al botn y nos abrir el administrador de archivos para que elijamos nuesro
archivo a subir, vamos a crear un text rea y ya no trabajamos form_input si no con
form_textarea()
Ejecutemos en nuestro navegador para ver como va quedando nuestro formulario
http://localhost/clase_5/formulario
Ahora vamos al controlador para crear los ambientes que son sin post que es que
el formulario no me recibe nada del formulario y el ambiente post que es cuando el
formulario nos guarda los datos que enviamos a travs del formulario. En el
controlador vamos a programar los dos ambientes recuerde que nuestro controlador
se llama formulario.php. Con la clase input es la que vamos a recibir los datos que
se envan en el formulario.
Si ejecutamos y escribimos algo en el campo de texto podemos ver que el formulario
nos imprime en pantalla lo enviado en la caja de texto:
Que nos falta que nos cargue la imagen y para eso tenemos que usar la clase upload
y como se trabaja esta clase pues se debe tratar como a un arreglo y le debemos
indicar en donde se debe guardar el archivo ./uploads/ primero debemos procesar
la imagen y despus los datos ya veremos cmo queda nuestro cdigo, debemos
crear una carpeta llamado uploads y se crea en la raz.
Si ejecuto y me sale un error donde me dice que no reconoce $session es porque
no lo he habilitado en el autoload.php voy y lo activo y se debe solucionar el
problema.