Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/routing»

De WikiEducator
Saltar a: navegación, buscar
(Ruta básica)
Línea 20: Línea 20:
 
*Hay diferentes maneras de especificar estas rutas en el fichero route.php, como vamos a ver a continuación
 
*Hay diferentes maneras de especificar estas rutas en el fichero route.php, como vamos a ver a continuación
  
====Ruta básica====
+
====Especificando la ruta en Laravel====
*Se usa la clase '''''route''''',
+
*Para ello se usa la clase '''''route'''''
*Los métodos son palabras (verbos) que representan el tipo de solicitud http que se hace al servidor.
+
*Esta clase tiene una serie de métodos para especificar las rutas que corresponden al tipo de solicitud http que se hace al servidor
*(Ver protocolo http para este cometido).
+
*Estos métodos son palabras (verbos) que representan el tipo de solicitud http que se hace al servidor.(Ver protocolo http para este cometido).
 
*Se suele usar get(), para solicitudes de páginas que no envían datos y post() si se envían datos
 
*Se suele usar get(), para solicitudes de páginas que no envían datos y post() si se envían datos
 
*Aquí una lista de posibles verbos a utilizar
 
*Aquí una lista de posibles verbos a utilizar
Línea 36: Línea 36:
 
?>
 
?>
 
</source>
 
</source>
 
 
*El método especificado recibe dos parámetros:
 
*El método especificado recibe dos parámetros:
 
#El URL o URI que el cliente solicitará
 
#El URL o URI que el cliente solicitará
#Una función anónima que se ejecutará y dará el contenido (En el routing básico)
+
#Especifica la acción que se va a hacer para retornar un contendio al cliente según la url solicitada
 +
*En función de como se especifique esta acción tenemos diferentes formas de hacer Routing, como veremos a  continuación
 +
 
 +
===Routin básico : funciones anónimas o Clousuras===
 +
 
 +
 
 +
Una función anónima que se ejecutará y dará el contenido (En el routing básico)
 
<source lang=php>
 
<source lang=php>
 
route::get("principalGet", function(){
 
route::get("principalGet", function(){
Línea 82: Línea 87:
 
*En su uso básico especificamos dos argumentos al método:  una  URI y una  Closure o función anónima
 
*En su uso básico especificamos dos argumentos al método:  una  URI y una  Closure o función anónima
 
}}
 
}}
*Se puede especificar el método en el qué se sirve
+
*Lógicamente las rutas con método post no los visualizaremos directamente desde el navegador. es decir si escribimos
 +
<source lang=bash>
 +
http://localhost:8000/principalPost
 +
</source>
 +
*No me aparecerá, y si vemos los errores, veremos que aparece un acceso no permitido
 +
*Podemos comprobarlo con curl en línea de comandos
 +
<source lang=bash>
 +
curl -d "" http://localhost:8000/principalPost
 +
</source>
 +
=====
 
*VEr el sigueintes tutorial:
 
*VEr el sigueintes tutorial:
  
 
http://duilio.me/como-asociar-rutas-a-controladores-y-acciones-con-laravel/
 
http://duilio.me/como-asociar-rutas-a-controladores-y-acciones-con-laravel/

Revisión de 03:55 4 ene 2015

Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg





Qué es routing

  • Es esta la primera diferencia que podemos encontrar con una aplicación web tradicional de PHP como hemos venido trabajando a lo largo del curso
  • El cliente escribe una url solicitando una página web o php p.e.
http://localhost/paginaPrincipal.php
  • Ahora el servidor web procesa la petición ejecutando el fichero php y retornando una página web al cliente. Entendemos que existe un fichero en el servidor con el nombre paginaPrincipal.php
  • Ahora no vamos a funcionar exactamente así en la parte del servidor
  • Meditante el routing, vamos a especificar el contenido que se va a servir ante una determinada URL
  • Esto se hará en un único fichero ./app/route.php de modo que todo lo realcionado con las rutas.

En él puede estar directamente el contenido que se va a servir ante una ruta o solicitud o se especificará un fichero donde se obtendrá dicho contendido

  • El cliente escribirá una ruta a la que quiere acceder en forma de URL y la aplicación en buscará dicha ruta en el fichero route.php.
  • Una aproximación (en realidad hay muchos ficheros que se ejecutan entre medias. ver ciclo de vida de una aplicación laravel), podemos ver en la siguiente imagen

SolicitudRoute.png

  • Hay diferentes maneras de especificar estas rutas en el fichero route.php, como vamos a ver a continuación

Especificando la ruta en Laravel

  • Para ello se usa la clase route
  • Esta clase tiene una serie de métodos para especificar las rutas que corresponden al tipo de solicitud http que se hace al servidor
  • Estos métodos son palabras (verbos) que representan el tipo de solicitud http que se hace al servidor.(Ver protocolo http para este cometido).
  • Se suele usar get(), para solicitudes de páginas que no envían datos y post() si se envían datos
  • Aquí una lista de posibles verbos a utilizar
<? php
// app/routes.php
Route::get();
Route::post();
Route::put();
Route::delete();
Route::any(); //any, sirve para especificar cualquier tipo de solicitud http
?>
  • El método especificado recibe dos parámetros:
  1. El URL o URI que el cliente solicitará
  2. Especifica la acción que se va a hacer para retornar un contendio al cliente según la url solicitada
  • En función de como se especifique esta acción tenemos diferentes formas de hacer Routing, como veremos a continuación

Routin básico : funciones anónimas o Clousuras

Una función anónima que se ejecutará y dará el contenido (En el routing básico)

route::get("principalGet", function(){
       return ("Estás en la página principal con método GET");
});
route::post("principalPost", function(){
       return ("Estás en la página principal con método POST");
});
route::get("principalGetOrPost", function(){
       return ("Estás en la página principal con método GET o POST");
});
  • En este primer caso vamos a probar el ejemplo.
  • Primero levantamos el servidor que viene con laravel en el puerto 8000
  • Para ello usamos los comandos de artisan
php artisan serve
  • Y vemos la siguiente salida, que responde al route con la URL /
Laravel development server started on http://localhost:8000

LaravelLocalhost.png

  • A continuación escribimos la ruta a la que queremos acceder. En nuestro caso hemos detallado tres rutas, que serían las páginas de nuestra aplicación:
  1. principalGet
  2. principalPost
  3. principalGetOrPost

http://localhost:8000/principalGet

  • Y sale el contenido indicado

Archivo:RouteBasica.png


Icon summary.gif

Resumen

  • Las rutas se especifican en el fichero ./app/routes.php




Icon summary.gif

Resumen

  • Se especifica la clase route con los métodos get() o post() o any() principalmente




Icon summary.gif

Resumen

  • En su uso básico especificamos dos argumentos al método: una URI y una Closure o función anónima


  • Lógicamente las rutas con método post no los visualizaremos directamente desde el navegador. es decir si escribimos
http://localhost:8000/principalPost
  • No me aparecerá, y si vemos los errores, veremos que aparece un acceso no permitido
  • Podemos comprobarlo con curl en línea de comandos
 curl -d "" http://localhost:8000/principalPost

=

  • VEr el sigueintes tutorial:

http://duilio.me/como-asociar-rutas-a-controladores-y-acciones-con-laravel/