Publicado el 2 de Abril del 2021
466 visualizaciones desde el 2 de Abril del 2021
1,0 MB
350 paginas
Creado hace 8a (28/08/2015)
Symfony2 Spanish Documentation
Release 0.1
Symfony2 Spanish Translation Team
August 28, 2015
Contents
1 Quick Tour
1.1 Quick Tour .
2 Book
2.1
Libro .
.
.
.
3 Cookbook
3.1
Cookbook .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Reference Documents
4.1
Reference Documents
5 Contributing
5.1
Contribuciones .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
21
21
211
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
271
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
329
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
i
ii
CHAPTER 1
Quick Tour
Get started fast with the Symfony2 Quick Tour:
1.1 Quick Tour
1.1.1 Un primer vistazo
Iniciaremos usando Symfony2 en tan solo 10 minutos. Este capítulo abarca algunos de los conceptos más importantes
sobre los que esta construido Symfony2. Explicaremos como iniciar de forma rápida a través de un sencillo proyecto
de ejemplo.
Si ya has usado un framework para desarrollo web, seguramente te sentirás a gusto con Symfony2. Si no es tu caso,
bienvenido a una nueva forma de desarrollar aplicaciones web.
Descarga de Symfony2
Primero que todo, verfica que tienes instalado y configurado un servidor web (como Apache) con PHP 5.3.2 o superior.
¿ Listo ? Empecemos por descargar la “edición estándar de Symfony2”, una distribución de Symfony que se en-
cuentra preconfigurada para la mayoría de casos y que también contiene código de ejemplo que demuestra cómo usar
Symfony2 (puedes obtener un paquete que incluya los vendors para empezar aún más rápido).
Después de extraer el paquete bajo el directorio raíz del servidor web, deberías tener un directorio Symfony/ con
una estructura como se muestra a continuación:
www/ <- directorio raíz del servidor web
Symfony/ <- directorio extraído
app/
cache/
config/
logs/
src/
Acme/
DemoBundle/
Controller/
Resources/
vendor/
symfony/
doctrine/
...
1
Symfony2 Spanish Documentation, Release 0.1
web/
app.php
Verificando la configuración
Symfony2 integra una interfaz visual para probar la configuración del servidor, muy útil para solucionar problemas
relacionados con el servidor web o por una incorrecta configuración de PHP. Usa la siguiente url para observar el
diagnóstico:
http://localhost/Symfony/web/config.php
Si se listan errores o aspectos de configuración pendientes, corrígelos; puedes realizar los ajustes siguiendo las re-
comendaciones. Cuando todo se encuentre listo, haz click en el enlace: “Go to the Welcome page” para ver tu primera
aplicación “real” en Symfony2:
http://localhost/Symfony/web/app_dev.php/
Symfony2 debería felicitarte por tú arduo trabajo hasta el momento.
Comprender los fundamentos
Uno de los principales objetivos de un framework es garantizar la separación de responsabilidades. Mantiene tu código
organizado y permite a tu aplicación crecer fácilmente en el tiempo evitando la mezcla de llamados a bases de datos,
etiquetas HTML y código de lógica de negocio en un mismo archivo. Para lograr este objetivo, debes aprender algunos
conceptos y términos fundamentales.
Tip: ¿ Quieres más pruebas de que usar un framework es mucho mejor que mezclar todo en un mismo archivo ? Lee
el capítulo del libro:”De PHP plano a Symfony2“
La distribución viene con algunos ejemplos de código que puedes usar para aprender más sobre los principales con-
ceptos de Symfony2. Ingresa a la siguiente URL para ser saludado por Symfony2 (reemplaza Fabien por tu primer
nombre):
http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
¿ Qué sucedió ? Bien, revisemos la url por partes:
• app_dev.php: Este es el controlador frontal. Es el único punto de entrada de la aplicación y el cual responde
todas las solicitudes del usuario.
• /demo/hello/Fabien: Esta es la ruta virtual del recurso que el usuario quiere acceder.
responsabiliad
Tú
(/demo/hello/Fabien) a el recurso asociado con ésta (Hello Fabien!).
desarrollador
escribir
el
como
código
que mapea
la
es
petición
del
usuario
Enrutamiento
Symfony2 direcciona las peticiones al código que las gestiona tratando de encontrar correspondencia entre la URL so-
licitada y algunos patrones de configuración. Por omisión, estos patrones están definidos en el archivo de configuración
app/config/routing.yml:
# app/config/routing.yml
_welcome:
pattern:
defaults: { _controller: AcmeDemo:Welcome:index }
/
2
Chapter 1. Quick Tour
Symfony2 Spanish Documentation, Release 0.1
_demo:
resource: "@AcmeDemo/Controller/DemoController.php"
type:
prefix:
annotation
/demo
Las primeras tres líneas del archivo de configuración de enrutamiento definen el código que es ejecutado cuando el
usuario hace una petición al recurso especificado por el patrón “/” (i.e. la página inicial). Cuando este recurso es
solicitado, el controlador AcmeDemo:Welcome:index será ejecutado.
Tip: La edición estándar de Symfony2 usa el formato YAML para sus archivos de configuración, sin embargo
Symfony2 también soporta XML, PHP y anotaciones de forma nativa. Los diferentes formatos son compatibles y
pueden ser usados indistintamente dentro de una aplicación. De igual manera, el rendimiento de tu aplicación no
depende del formato de configuración que escojas ya que todo se almacena en cache en la primera petición.
Controladores
gestiona
controlador
Un
las
HTML). A cambio de usar
sajes HTTP,
Symfony\Component\HttpFoundation\Response.
spuesta, basado en la petición:
Symfony
entrantes
usa
y
peticiones
en
las variables globales de PHP y funciones para manejar estos men-
y
El controlador más simple posible crea una re-
Symfony\Component\HttpFoundation\Request
(la mayoría
respuestas
objetos:
retorna
veces
de
use Symfony\Component\HttpFoundation\Response;
$name = $request->query->get('name');
return new Response('Hello '.$name, 200, array('Content-Type' => 'text/plain'));
Note: No te dejes engañar por la simpleza de los conceptos y el poder que encierran. Lee el capítulo “La especifi-
cación HTTP y Symfony2” del libro para conocer más sobre cómo Symfony2 aprovecha el protocolo HTTP y por qué
éste hace las cosas más simples y poderosas al mismo tiempo.
Symfony2 elige el controlador basado en el valor del parámetro _controller del archivo de configuración de
enrutamiento: AcmeDemo:Welcome:index. Esta cadena de texto es el nombre lógico del controlador y hace
referencia al método indexAction de la clase Acme\DemoBundle\Controller\WelcomeController:
// src/Acme/DemoBundle/Controller/WelcomeController.php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class WelcomeController extends Controller
{
public function indexAction()
{
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
Tip:
También puedes usar Acme\DemoBundle\Controller\WelcomeController::indexAction
como valor del parámetro _controller, pero si sigues algunas convenciones sencillas, el nombre lógico es más
conciso y permite mayor flexibilidad.
1.1. Quick Tour
3
Symfony2 Spanish Documentation, Release 0.1
La clase controlador extiende de la clase Controller (incluída en el framework), la cual provee métodos muy útiles,
como el método :method:‘Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller::render‘ que carga y
muestra una plantilla (AcmeDemo:Welcome:index.html.twig). El valor retornado es un objeto Response
que almacena el contenido transformado. De esta manera, en caso de ser necesario, la respuesta (el objeto Response)
puede ser adaptada antes de ser enviada al navegador:
public function indexAction()
{
$response = $this->render('AcmeDemo:Welcome:index.txt.twig');
$response->headers->set('Content-Type', 'text/plain');
return $response;
}
Tip: Extender de la clase base ‘‘Controller‘‘es opcional. De hecho, un controlador puede ser una función PHP o
aún una función anónima (conocidas también como closures). El capítulo “El Controlador” del libro te enseñará todo
sobre los controladores en Symfony2.
El nombre de la plantilla, AcmeDemo:Welcome:index.html.twig, es el nombre lógico de la plantilla y
hace referencia al archivo src/Acme/DemoBundle/Resources/views/Welcome/index.html.twig.
De nuevo, más adelante en la sección bundles se explicará la utilidad de estos nombres.
Ahora, revisemos las últimas líneas del archivo de configuración de enrutamiento:
# app/config/routing.yml
_demo:
resource: "@AcmeDemo/Controller/DemoController.php"
type:
prefix:
annotation
/demo
leer
la
o
es
puede
información
Symfony2
PHP. Aquí,
YAML, XML,
curso
y
src/Acme/DemoBundle/Controller/DemoController.php‘‘. En este archivo,
taciones sobre los métodos que involucran acciones:
@AcmeDemo/Controller/DemoController.php
enrutamiento
anotaciones
embebidos
desde
PHP
de
en
nombre
recursos
diferentes
en
re-
archivo
las rutas están definidas como ano-
escritos
del
lógico
al
referencia
el
hace
// src/Acme/DemoBundle/Controller/DemoController.php
class DemoController extends Controller
{
/**
* @extra:Route("/hello/{name}", name="_demo_hello")
* @extra:Template()
*/
public function helloAction($name)
{
return array('name' => $name);
}
// ...
}
La anotación @extra:Route() define la ruta para el método helloAction y el patrón que es
/hello/{name}. La cadena encerrada entre llaves {name} es un marcador de posición (conocido como place-
holder). Como puedes ver, su valor puede ser recuperado a través del argumento $name del método.
Note: Aún cuando las anotaciones no están nativamente soportadas por PHP, su uso es extensivo en Symfony2 como
una forma muy conveniente de configurar el comportamiento del framework y conservar la configuración junto al
código.
4
Chapter 1. Quick Tour
Symfony2 Spanish Documentation, Release 0.1
Si das un vistazo más de cerca al código de
Comentarios de: Symfony2 Spanish Documentation (0)
No hay comentarios