Vous êtes sur la page 1sur 7

ENCAPSULAR CDIGO: nos sirve para evitar mostrar los valores de variables

que son confidenciales o que solo son propias dentro del controlador. En este
ejemplo vamos a encapsular la variable $confidencial

La parte en donde se usa encapsulacin es al momento de crear la funcin que


va a mostrar la vista llamada view.php. Se puede notar que la funcin tiene un
parmetro llamado $language
A diferencia de javascript las funciones php no pueden usar las variables que
se encuentran fuera de la funcin, por ello es necesario que la funcin lo tenga
como parmetro. Si el parmetro $language no se pasara a la funcin view
ocurrira un error ya que en la vista view.php es usada esa variable. Declara
una variable fuera no es lo mismo que declara un parmetro dentro de una
funcin.
Nota: El controlador siempre ser el que mostrara las vistas.
Como pueden observar la variable $confidencial que es usada dentro de la
vista view.php no pudo ser mostrada por eso aparece la notificacin. Para que
esto no sucediera as tendras que pasar como parmetro la variable
confidencian dentro de la funcin view. De esta manera encapsulamos las
variables para evitar el acceso a ellas desde las vistas.

La variable confidencial que se encuentra dentro de la vista view.php no se


podr mostrar i/o usar. Esto es lo que ocasiona la notificacin anterior.

Si nuestro navegador no muestra las notificaciones y posibles errores que


pueden ocurrir en la programacin es necesario agregar
ini_set(display_errors,true); //seteamos todos los errors en pantalla
error_reporting(E_ALL) //indicamos que queremos el reporte de todos
los errores

Al cambiarlo el parmetro booleano a false el navegador deja de mostrar los


errores y notificaciones esto no es correcto ya que cuando estamos
programando es necesario conoce los errores y notificaciones.
Para mejorar la estructura del cdigo hacer nuestro cdigo ms reusable
vamos a crear otras pginas php en las que colocaremos el cdigo repetitivo.

Esto lo colocaremos en otra pgina php denominada config.php tal y como se


muestra en la imagen de arriba. De tal manera que solo se requerir en todas
las pginas que se vallan a usar y asi evitaremos repetir el mismo cdigo varias
veces.

La funcin view que mostrara nuestras vistas lo colocaremos en una pgina


php denominada helpers.php. Como se puede observar la funcin solo podra
usarse una vez por lo tanto habra que hacer dinmica esta funcin para que

funcione con diferentes vistas ya que en nuestro proyecto podramos tener


varias vistas que dsenos mostrar.

Lo que ase extract() es como su nombre lo indica extrae como variables


individuales a nuestro array asociativo. Por lo tanto debe de recibir como
parmetro un arreglo asociativo.

Al momento de mostrar nuestra vista mediante la funcin view necesitamos


crear una arreglo asociativo, por lo tanto usamos la funcin compact() . La
funcin compact recibe n.. Cantidad de variables individuales compactndolos
en un arreglo.

Las variables lenguaje, y ttulo son usados dentro view.php si no se pasaran


estas variables ocurrira un erros.

FRONTEND CONTROLLER
Nos permite controlar lo que suceder cuando el usuario intente
acceder a una pgina mediante la escritura de una url en el
navegador,
este
cargara
los
controladores
individuales
correspondientes.
1.- cuando intente escriba index.php al final de nuestra url cargara el
controlador home.php
2.- cuenado intente aceder
controlador contactos.php

//index.php?url=contactos

cargara

el

3.- Cuando intente acceder a un controlador no existente //index.php?


url=tgffgffgfgf lo que aremos ser mostrar un error 4.0.4

MEJORANDO EL FRONTEND CONTROLLER


Como podemos observar en la imagen anterior en nuestro frontend contoller
denominado index.php tenemos varias sentencias if lo cual aria que la pgina
se llenara de cdigo repetitivo entre ms controladores individuales queramos
cargar, para solucionar esto lo que aremos es crear una funcin dentro de la
pgina helpers.php, anteriormente ya tenamos la funcin view.
Lo que hacemos es mediante esta funcin recibir un parmetro variable
denominado $name de esta manera no sera necesario evaluar con varios if lo
que el usuario escriba por la url. Si el controlador que el usuario escribi no
existe se mostrara el erro 404.