Foros del Web » Programando para Internet » PHP »

PHP OO Consejos para el manejo de las variables globales de PHP en MVC

Estas en el tema de Consejos para el manejo de las variables globales de PHP en MVC en el foro de PHP en Foros del Web. Hola a todos, quisiera que me ayuden con esto los que manejan el tema, y mi pregunta es sobre el manejo de las variables globales ...
  #1 (permalink)  
Antiguo 31/03/2014, 11:28
 
Fecha de Ingreso: enero-2009
Ubicación: San Lorenzo - Paraguay
Mensajes: 36
Antigüedad: 15 años, 10 meses
Puntos: 6
Pregunta Consejos para el manejo de las variables globales de PHP en MVC

Hola a todos, quisiera que me ayuden con esto los que manejan el tema, y mi pregunta es sobre el manejo de las variables globales de PHP ($_SESSION, $_COOKIE, $_REQUEST, $_GET, $_POST, etc). Cual seria una manera eficiente y eficaz y mas segura de utilizar estas variables en MVC, y en que capa correspondiente. Muchas Gracias!
  #2 (permalink)  
Antiguo 01/04/2014, 06:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 2
Respuesta: Consejos para el manejo de las variables globales de PHP en MVC

La verdad es que mi forma de entender MVC, según el común de los mortales, es errónea, pues tengo entendido que está destinada al diseño de interfaces gráficas y a la interacción del usuario y la información a través de ellas de forma dinámica. De echo, según como lo usa la mayoría de la gente, yo lo entiendo como [[URL="http://bit.ly/1gKssiV"]Three-Tier architecture[/URL]], el caso es que con ese respecto, es decir, el que te mueve a preguntar, yo lo que pensé para mis proyectos es crear una clase que manipule y filtre todas las variables enviadas por el usuario, uno nunca se puede fiar. Aunque aún no lo he probado en producción, como lo estoy diseñando para código abierto, te voy a compartir el código de dicha clase, espero que la pruebes y me comentes los resultados. Si puede ser, por privado para asegurarme de recibirlos.

NOTA: Te recuerdo que nunca la he probado y que hace mucho que no la reviso, pues estoy con otra parte de mi proyecto.

[[URL="http://pastebin.com/KF4HDe0R"]VarsFilter Class[/URL]]
  #3 (permalink)  
Antiguo 01/04/2014, 07:37
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: Consejos para el manejo de las variables globales de PHP en MVC

Mi opinion es a lo personal, puede que hayan mejores formas... pero en fin!

Las Get utiliza unicamente para la localizacion y las acciones de tu proyecto, es decir:
?controlador=miControlador&accion=busqueda&datoBus car=midato;

Como veras en ellas utilizo las dos primeras variables para decidir que ahcer y el resto de variables que sean datos que necesite en casos especiales y no muy importantes como puede ser una busqueda, el numero de paginacion etc. (si es posible usa urlencode y urldecode para evitar problemas en su lectura e colocacion)

Ya el resto considero que deben tener un uso comun y corriente ya que en MVC las GET son las que tienen una funcionalidad "especial" para el funcionamiento del sistema!

Espero que alguien con mayores conocimientos pueda ayudarte mas! =)
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #4 (permalink)  
Antiguo 01/04/2014, 08:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Consejos para el manejo de las variables globales de PHP en MVC

Cita:
Iniciado por Xilsh Ver Mensaje
Hola a todos, quisiera que me ayuden con esto los que manejan el tema, y mi pregunta es sobre el manejo de las variables globales de PHP ($_SESSION, $_COOKIE, $_REQUEST, $_GET, $_POST, etc). Cual seria una manera eficiente y eficaz y mas segura de utilizar estas variables en MVC, y en que capa correspondiente. Muchas Gracias!
Esto mas bien es una cuestión de diseño personal, ya que mvc no impone ni sugiere como debes de usarlas para aplicar el modelo. Por otro lado generalmente no se usa mvc si no el patrón Front Controller al cual le puedes echar un vistazo como referencia.
En este hilo: http://www.forosdelweb.com/f18/inici...hp-oo-1095408/ en el cuarto mensaje dashtrah proporciona de manera general una lista de cosas que debes de tener en cuenta al organizar tu aplicación.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 01/04/2014, 09:18
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 8 meses
Puntos: 270
Respuesta: Consejos para el manejo de las variables globales de PHP en MVC

En mi opinión, las variables propias del protocolo HTTP ($_POST,$_GET,$_COOKIE..) sólo pueden usarse en la capa más externa de la aplicación (el enrutado).
En cualquier otro lado, están prohibidas.
Si tú usas,digamos, $_GET en un cierto método, estás obligando a que ese método sea llamado dentro de una petición HTTP.Estás introduciendo una interdependencia no solo innecesaria, sino peligrosa.
Si mañana necesitas que se llame a ese método, pero desde php-cli, o se cambia cómo se pasan los parámetros a la página, tienes que cambiar el método.

Es decir, esto:
Código PHP:
Ver original
  1. class ... {
  2.    function canEdit()
  3.    {
  4.         $id_user=$_SESSION["id_user"];
  5.     }
  6. }

en un modelo, incluso en un controlador (dependiendo del tipo de controlador), hay que
sustituirlo por
Código PHP:
Ver original
  1. class ... {
  2.    function canEdit($editor)
  3.    {
  4.         $id_user=$editor;
  5.     }
  6. }
Las cosas relacionadas con el protocolo con el que se llama a tu sistema, tienen que quedar sólo en esa capa: la que se encarga de gestionar el protocolo, es decir, el enrutado.
Y quien debe hacer eso?Quien convierte variables $_GET a variables php, si no es el modelo, o el controlador?
Lo que yo hago es usar otros elementos, como la clase Pagina.
El protocolo HTTP tiene el concepto de 'página'.Encontrar la Página a renderizar es el objetivo del enrutado.Página es una clase (más bien, un componente más del paradigma...Pagina != Vista).Esta clase 'Página' es la única que tiene acceso a $_GET, $_POST,$_SESSION,$_COOKIE... y debe convertirlas a parámetros del "controlador".Del controlador hacia abajo, no permito el uso de $_POST,$_SESSION,$_COOKIE, etc (de hecho, las pongo a null...mientras php me permita hacerlo)

Etiquetas: mvc, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:42.