Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Octubre del 2017)
1.074 visualizaciones desde el 5 de Octubre del 2017
347,5 KB
3 paginas
Creado hace 10a (08/01/2014)
SSyymmffoonnyy22
GG uu ííaa RRáá ppii dd aa ppoorr LLuu ii ss JJ oosséé SSáá nn cchh ee zz GG oonn zzáá llee zz
PASOS PREVIOS
INSTALACIÓN
Instalar la extensión intl:
sudo apt-get install php5-intl
Instalar APC:
sudo apt-get install php-apc
Localizar el php.ini que se está utilizando:
php -i
| grep php.ini
Editar php.ini:
date.timezone = Europe/Madrid
Reiniciar Apache:
sudo /etc/init.d/apache2 restart
Instalar curl:
sudo apt-get install curl
Instalar git:
sudo apt-get install git
Instalar composer:
curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Instalación de Symfony 2:
Descargar el fichero comprimido.
Descomprimirlo en el directorio raiz de localhost que en Linux
es /var/www/
Configurar Symfony accediendo a
http://localhost/Symfony/web/config.php
Instalación mediante composer:
php composer.phar create-project symfony/framework-
standard-edition path/ 2.4.1
VARIOS
Borrar la caché (desde dentro de la carpeta del proyecto):
sudo php app/console cache:clear
PÁGINA ESTÁTICA SENCILLA
Creación del bundle:
php app/console generate:bundle
Se pulsa INTRO a todas las preguntas salvo estas dos:
Bundle namespace: LJSG24/Ejercicio01 Bundle
Configuration format (yml, xml, php, or annotation) [annotation]: yml
--------------------------------------
Edición del fichero /var/www/Symfony/src/LJSG24/Ejercicio01 Bundle/Resources/config/routing.yml
Se añade:
ljsg24_ejercicio01 _gatos:
pattern:
defaults: { _controller: LJSG24Ejercicio01 Bundle:Default:gatos }
/gatos/
--------------------------------------
Edición del fichero /var/www/Symfony/src/LJSG24/Ejercicio01 Bundle/Controller/DefaultController.php
Se añade dentro de la clase:
public function gatosAction()
{
return $this->render('LJSG24Ejercicio01 Bundle:Default:gatos.html.twig');
}
--------------------------------------
Se crea el fichero /var/www/Symfony/src/LJSG24/Ejercicio01 Bundle/Resources/views/Default/gatos.html.twig con el siguiente
contenido:
<h1 >Gatos</h1 >
<p>
El gato o gato doméstico (Felis silvestris catus) es un pequeño mamífero carnívoro de la familia Felidae.
El gato está en convivencia cercana al ser humano desde hace unos 9500 años,1 periodo superior al estimado
anteriormente, que oscilaba entre 3500 y 8000 años.
</p>
--------------------------------------
Para acceder a la aplicación desde el navegador:
http://localhost/Symfony/web/app_dev.php/gatos
IMÁGENES
Las imágenes (p. ej. gatos.jpg) se guardan en
/var/www/Symfony/web/imagenes/
Se podrían guardar directamente en
/var/www/Symfony/web/ pero es mejor tenerlas
todas agrupadas en la misma carpeta.
-------------------------------------
En gatos.html.twig se añade:
<p>
<img src="{{ asset('imagenes/gatos.jpg') }}" width="400">
</p>
PASO DE PARÁMETROS EN LA RUTA
Vamos a conseguir pasar el color de fondo de la página en la url.
-------------------------------------
Se añaden las rutas en routing.yml
Quedaría así:
ljsg24_ejercicio01 _gatos_fondo:
pattern:
defaults: { _controller: LJSG24Ejercicio01 Bundle:Default:gatos}
/gatos/fondo:{color_de_fondo}
ljsg24_ejercicio01 _gatos:
pattern:
defaults: { _controller: LJSG24Ejercicio01 Bundle:Default:gatos }
/gatos/
-------------------------------------
En gatos.html.twig se añade al principio:
<html>
<body bgcolor="{{ color_de_fondo }}">
y al final:
</body>
</html>
-------------------------------------
Se modifican los métodos en el controlador (DefaultController.php) de esta forma:
public function gatosAction($color_de_fondo = "white")
{
return $this->render('LJSG24Ejercicio01 Bundle:Default:gatos.html.twig', array('color_de_fondo' => $color_de_fondo));
}
--------------------------------------
Desde el navegador podemos indicar que queremos ver la página de gatos con fondo azul:
http://localhost/Symfony/web/app_dev.php/gatos/blue
USO DE FORMULARIOS
Vamos a realizar un configurador de vehículo.
-------------------------------------
php app/console generate:bundle
-------------------------------------
Añadimos las rutas en routing.yml
ljsg24_ejercicio04_formulario:
pattern:
defaults: { _controller: LJSG24Ejercicio04Bundle:Default:formulario }
/formulariocoche
ljsg24_ejercicio04_coche:
pattern:
defaults: { _controller: LJSG24Ejercicio04Bundle:Default:coche }
/coche
-------------------------------------
Añadimos los métodos en el controlador:
public function formularioAction()
{
return $this->render('LJSG24Ejercicio04Bundle:Default:formulariocoche.html.twig');
}
public function cocheAction()
{
$peticion = $this->getRequest();
$color = $peticion->query->get('color');
$llantas = $peticion->query->get('llantas');
$tapiceria = $peticion->query->get('tapiceria');
$moldura = $peticion->query->get('moldura');
$exterior = "imagenes/".$color.$llantas.".jpg";
$interior = "imagenes/".$tapiceria.$moldura.".jpg";
return $this->render('LJSG24Ejercicio04Bundle:Default:coche.html.twig', array('exterior' => $exterior, 'interior'
=> $interior));
}
-------------------------------------
formulariocoche.html.twig
<h2>Configurador de vehículo</h2>
<form action="{{ path('ljsg24_ejercicio04_coche') }}" method="get">
Color:<br>
<input type="radio" name="color" checked="checked" value="negro">Negro</input><br>
<input type="radio" name="color" value="rojo">Rojo</input><br>
<input type="radio" name="color" value="verde">Verde</input><br>
<hr>
Llantas:<br>
<input type="radio" name="llantas" checked="checked" value="1 8">1 8 pulgadas</input><br>
<input type="radio" name="llantas" value="21 ">21 pulgadas</input><br>
<hr>
Color de tapicería:<br>
<input type="radio" name="tapiceria" checked="checked" value="blanco">Blanco</input><br>
<input type="radio" name="tapiceria" value="berengena">Berengena</input><br>
<hr>
Molduras interiores:<br>
<input type="radio" name="moldura" checked="checked" value="madera">Madera</input><br>
<input type="radio" name="moldura" value="carbono">Fibra de carbono</input><br>
<hr>
<input type="submit" value="Aceptar">
</form>
-------------------------------------
coche.html.twig
<h2>Aquí tiene su vehículo, pase por caja por favor.</h2>
<img src="{{ asset(exterior) }}">
<img src="{{ asset(interior) }}">
Comentarios de: Symfony 2 - Guía Rápida (0)
No hay comentarios