Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

MVC y URL Keywords

Estas en el tema de MVC y URL Keywords en el foro de Frameworks y PHP orientado a objetos en Foros del Web. He estado buscando sobre este tema, y nada, no encuentro absolutamente a nadie que hable de ello, asi que me dispongo a preguntar. A mi ...
  #1 (permalink)  
Antiguo 07/01/2011, 16:57
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
MVC y URL Keywords

He estado buscando sobre este tema, y nada, no encuentro absolutamente a nadie que hable de ello, asi que me dispongo a preguntar.

A mi me gusta implementar MVC en mis aplicaciones, hace poco estuve estudiando SEO, y vi que una buena practica es poner palabras clave en las URL, por ejemplo si estas en un catalogo donde vendes un coche poner ejemplo.com/1223/coche-ford-focus.html, por ejemplo, cualquier palabra que identifique sobre que se esta ofreciendo en esa página, mi pregunta es, ¿Como implementariais / implementais esa practica en vuestras aplicaciones MVC?

Un saludo
  #2 (permalink)  
Antiguo 07/01/2011, 17:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: MVC y URL Keywords

Recuerda que MVC es un patrón de diseño por lo que no tiene NADA que ver con las URLs, la URL como tal es parte del input que el usuario le da a tu sistema, por lo que dentro de tu sistema debes de tener algún componente que se encargue de leer la URL y extraer la información que necesites, y posteriormente hacer el dispatch hacía tu vista, pero eso ya es tarea de tu framework que uses o la implementación que uses.

Recuerda que no puedes mezclar estas dos cosas, MVC es un patrón de diseño para la programación de software, ya cosas más implementadas las tienes que programar en la capa correspondiente.

Saludos.
  #3 (permalink)  
Antiguo 07/01/2011, 17:22
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC y URL Keywords

Cierto que MVC es un patron de diseño que no tiene que ver con las URL, pero al usarlo te obliga a enviar un controlador y una acción por la URL, sino el router tomaria el controlador y la acción por defecto, me equivoco?
  #4 (permalink)  
Antiguo 07/01/2011, 17:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: MVC y URL Keywords

Como te comento depende mucho del framework, por ejemplo Zend Framework tiene el Zend_Controller_Router, el cual puede desde varios formatos de URLs fijas o dinamicas mapear a diferentes controladores, y precisamente el Router es parte de la capa del Controller, por lo cual respesta el MVC.

Saludos.
  #5 (permalink)  
Antiguo 07/01/2011, 17:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: MVC y URL Keywords

Un ejemplo:
Código PHP:
Ver original
  1. $route = new Zend_Controller_Router_Route(
  2.      'archive/:year',
  3.      array(
  4.          'year'       => 2006,
  5.          'controller' => 'archive',
  6.          'action'     => 'show'
  7.      )
  8. );
  9. $router->addRoute('archive', $route);

Eso te mapea una url como http://app/archive/2006 y sabe que controller/action llamar con que parámetros.
  #6 (permalink)  
Antiguo 07/01/2011, 17:37
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC y URL Keywords

Bueno lo cierto es que no estoy usando ningun framework, soy de los tipicos que le gusta tener todo su propio código, ya sabes, jeje.

Mirare que formatos son los que mas se asemejan a mis necesidades.

Edit: no lei tu segundo post al escribir esto, gracias por el ejemplo, la idea que tengo en mente es de hacer una URL en la cual el router sepa que palabras tiene que tener en cuenta a la hora de elegir el controlador, y que palabras son las que son keywords, para SEO

Un saludo y gracias
  #7 (permalink)  
Antiguo 08/01/2011, 00:15
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: MVC y URL Keywords

[B]Bueno Heli0s, creo tener la respuesta a tu pregunta. Me sucedió lo mismo en un proyecto personal de varios meses atrás en el que quería implementar las URL amigables como lo hacen los frameworks.

La cuestión es la siguiente:todo está en configurar el archivo .htaccess para que te haga el ruteado del URI que está recibiendo actualmente mediante unas reglas. Te pondré como ejemplo, parte del proyecto que había desarrollado.

Pasar de esto
example.com/news.php?id=334&title=titulo-url-amigable

a esto
example.com/news/334/titulo-url-amigable

o a esto
example.com/news/334/titulo-url-amigable.html


Configurando el .htaccess
Para que este sistema de URL amigables funcione correctamente, en el .htaccess localizado en el raíz de tu servidor, se coloca el siguiente código:

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^news/([0-9]+)/([a-z-]+)?$ news.php?id=$1&title=$2 [L]

El resultado del código de arriba es este: example.com/news/334/titulo-url-amigable.


Colocar extensión
Ahora bien, cómo agregarle en forma dinámica la extensión .html a la cadena URL? Eso se resuelve como sigue, agregándole a la tercera línea ".html$", queda así:

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^news/([0-9]+)/([a-z-]+).html$ news.php?id=$1&title=$2 [L]

De esta forma, la URL queda así: exemplo.com/news/334/titulo-url-amigable.html. El "html" lo podemos cambiar por el que más guste, como por ejemplo: .asp (?), .htm, .php, .cgi, etc. etc. Pero es mejor dejar así para un buen SEO y buenas prácticas por sobre otras cosas. Eso esto lo que necesitas para poder implementar un sistema de URL amigables a tu propio MVC en desarrollo. Espero te sirva de mucho como a mí me lo había servido en su tiempo (y sigue sirviendo siempre!)

Saludos
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #8 (permalink)  
Antiguo 08/01/2011, 09:44
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC y URL Keywords

Muchas gracias, me ha gustado mucho tu forma de implementar las url's amigables, mirare de hacerlo de esa manera :)

Gracias a ambos!
  #9 (permalink)  
Antiguo 08/01/2011, 10:41
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
MVC, estructura y pasar variables por URL

Bien, a ver si me aclaro esta duda por que creo que es lo único que me falta de MVC.

Bien, mi duda es, una aplicacion MVC, tiene solo un frontController?, o podría tener una carpeta news/ en la cual hubiese otro frontController que se dedicase especialmente a elegir los controladores de esa seccion?

Y otra duda que me urge mas... imaginemos que tengo un buscador de usuarios, controlador: usersController.php, action: search, hasta ahi todo bien, y ahora como hago para pasarle el nombre que tiene que buscar? o una id? o cualquier dato para compararlo con la busqueda?

Espero que me aclaren las dudas sobre todo la segunda que es la que mas me interesa.

Un saludo
  #10 (permalink)  
Antiguo 08/01/2011, 10:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: MVC, estructura y pasar variables por URL

en realidad puedes usar los controladores que necesites, no hay limites... y además, las variables de la URL las obtienes con $_GET

te invito a leer lo siguiente:
http://www.php.net/variables.external
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 08/01/2011, 10:53
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC, estructura y pasar variables por URL

Se perfectamente el uso de $_GET y $_POST, el problema es a la hora de pasar un controlador y una accion, se supone que tambien tengo que pasar ese tercer parametro?
  #12 (permalink)  
Antiguo 08/01/2011, 11:28
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: MVC, estructura y pasar variables por URL

Si con el tercer parametro te refieres al termino de busqueda, la respuesta es creo obvia....
Se supone que el controller lo tienes asi no?


Código PHP:
Ver original
  1. class buscaya .... bla bla!{
  2.  
  3.     function busca(){
  4.  
  5.      //aca debes recibir el tercer parametro por post o por get.
  6.  
  7. }
  8.  
  9. }

Ahora si lo que pretendes es otra cosa, no entendi :P
__________________
Drupal Argentina
  #13 (permalink)  
Antiguo 08/01/2011, 11:30
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC, estructura y pasar variables por URL

Veo que no me explique demasiado bien, a ver, pongo un ejemplo
mipagina.com/controlador/accion/ -> Una url muy vista para MVC, cierto?
Si quiero realizar una busqueda, la url quedaria asi?
mipagina.com/controlador/accion/idparabuscar ????

Esa es mi duda
  #14 (permalink)  
Antiguo 08/01/2011, 13:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: MVC, estructura y pasar variables por URL

Voy a unir este tema con tu otro tema, ya que es lo mismo, todo depende de como lo implementes, tu puedes pasar los datos, como desees, necesitas una clase que parsee los datos desde la URL y te entregue los datos como los necesites, es decir pasar de algo asi:

http://app/controlador/accion/param1...param2/valor2/

A un formato que tu implementación entienda, y eso lo haces precisamente en tu frontController con alguna clase que sea la encargada de leer de tu URL y transformarlo a valores que puedas utilizar en tu aplicación.

Es por eso que la duda es la misma a la anterior, el URL no tiene NADA que ver con MVC, simplemente pertenece a la capa del controlador y sirve para recibir el input del usuario.
  #15 (permalink)  
Antiguo 08/01/2011, 14:32
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC y URL Keywords

Gracias por las aclaraciones, creo que por fin me quedó claro :)
  #16 (permalink)  
Antiguo 12/01/2011, 12:28
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: MVC y URL Keywords

como bien dijo el maestro GatorV, las url no tienen nada que ver a como lo interpreta tu Frontcontroller, supongamos que en vez de tener la url
pagina.com/autos/vendo/11/ford-focus
queres tener
pagina.com/autos/vendo/11/ford-focus/modelo/99/km/170000/color/azul
el frontcontroller solo debe saber que los elementos del $_REQUEST que le interesa son:
pagina.com ->url root
autos -> controlador
vendo -> accion
todo lo demas no le interesa ya que son datos indiferentes para él y que solo les interesa a los métodos de los controladores.

Última edición por destor77; 12/01/2011 a las 12:39
  #17 (permalink)  
Antiguo 12/01/2011, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: MVC y URL Keywords

De hecho estas un poco incorrecto destor77, en teoría sí es así, pero como dije más arriba eso es independiente de tu FrontController, ya que tu podrías progamar una ruta para que siempre fuera a cierto dispatch, por ejemplo:

http://host/users/Jhon

Tu programas dentro de tu sistema una ruta personal que vaya al modulo front, user controller, profile action.

Por eso es que decía que las URLs pueden ser de cualquier forma, pertenecen a la capa de Controller y el como las mapees/leas es independiente del paradigma MVC. Porque son cosas muy diferentes.

Saludos.
  #18 (permalink)  
Antiguo 13/01/2011, 07:44
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: MVC y URL Keywords

si estimado GatorV, tenes toda la razon, mi ejemplo iba mas a la "teoria" del MVC sin llegar al tema de los dispatcher o ruteos. Pero estas en lo correcto en remarcar mi error. Salu2
  #19 (permalink)  
Antiguo 14/01/2011, 08:04
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
Información Respuesta: MVC y URL Keywords

Cita:
Iniciado por Heli0s Ver Mensaje
Bueno lo cierto es que no estoy usando ningun framework, soy de los tipicos que le gusta tener todo su propio código, ya sabes, jeje.

Mirare que formatos son los que mas se asemejan a mis necesidades.

Edit: no lei tu segundo post al escribir esto, gracias por el ejemplo, la idea que tengo en mente es de hacer una URL en la cual el router sepa que palabras tiene que tener en cuenta a la hora de elegir el controlador, y que palabras son las que son keywords, para SEO

Un saludo y gracias
Hola Heli0s, yo también era de los tuyos hace apenas 8 meses... De los típicos que le gusta tener todo código propio . Un día quise probar por cusiosidad los "famosos" frameworks php, arranqué con CodeIgniter y realmente me fui encariñando con todas sus ventajas y comodidades.

Una de las ellas (y muy importante), es la facilidad de trabajar con URL amigables para los buscadores y sin necesidad de lidiar con los tediosos archivos .htaccess.

Si decidis continuar trabajando sin frameworks es completamente respetable, pero por las dudas te comento como labura CodeIgniter este tema; inclusive puede servirle a otra gente esta info:

En tu ejemplo de los autos, sólo bastaría con crear un controlador llamado "catalogo" y un método llamado "Autos" que iría dentro del controlador previamente mencionado. Entonces tu url quedariá:

dominio.com/catalogo/autos/ en lugar del poco estético: dominio.com?c=catalogo&m=autos

Y luego podés jugar con cuantos parámetros quieras. Por ejemplo:
dominio.com/catalogo/autos/Ford/Focus/

La definición de tu método "autos" para poder tomar y procesar los parámetros de usa url sería:

function autos($marca,$modelo){
echo $marca."<br>";
echo $modelo."<br>";
}

Un saludo!
  #20 (permalink)  
Antiguo 14/01/2011, 12:15
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: MVC y URL Keywords

Muchas gracias por la explicación, me parece bastante interesante la forma de "leer" las URL que tiene Codeigniter.

Etiquetas: keywords, mvc, url
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 21:57.