| |||
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! |
| |||
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]] |
| ||||
Respuesta: Consejos para el manejo de las variables globales de PHP en MVC Cita: 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.
Iniciado por Xilsh 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! 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. |
| ||||
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 en un modelo, incluso en un controlador (dependiendo del tipo de controlador), hay que sustituirlo por
Código PHP:
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.Ver original 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: |