Development

Changeset 22527 for doc

You must first sign up to be able to contribute.

Changeset 22527 for doc

Show
Ignore:
Timestamp:
09/27/09 22:56:46 (4 years ago)
Author:
puentesdiaz
Message:

start jobeet 1.3, Chap 04, rev en/22361

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • doc/branches/1.3/jobeet/es/04.markdown

    r22439 r22527  
    3030  * El **Controlador** es la pieza de código que llama al Modelo para obtener algunos datos que le pasa a la Vista para la presentación al cliente. Cuando instalamos Symfony el primer día, vimos que todas las solicitudes son gestionadas por un controlador frontal (`index.php` y `frontend_dev.php`). Estos controladores frontales delegadan la verdadera labor a las **acciones**. Como vimos ayer, estas acciones son, lógicamente, agrupadas en **módulos**. 
    3131 
    32 ![MVC](http://www.symfony-project.org/images/jobeet/1_2/04/mvc.png) 
     32![MVC](http://www.symfony-project.org/images/jobeet/1_3/04/mvc.png) 
    3333 
    3434Hoy, usaremos el mockup definido el día 2 para personalizar la página principal y la página de puestos de trabajos. Vamos hacerlas dinámicas. A lo largo del camino, vamos a modificar un montón de cosas en diferentes archivos para demostrar la estructura de directorios symfony y la forma de separar el código entre las capas. 
     
    4141Una forma de resolver el problema es definir un encabezado y un pie de página y lo incluyes en cada plantilla: 
    4242 
    43 ![Header and footer](http://www.symfony-project.org/images/jobeet/1_2/04/header_footer.png) 
     43![Header and footer](http://www.symfony-project.org/images/jobeet/1_3/04/header_footer.png) 
    4444 
    4545Pero los archivos de la cabecera y el pie de página no contienen HTML válido. Debe haber una mejor manera. En lugar de reinventar la rueda, vamos a utilizar otro patrón de diseño para resolver este problema: el  
     
    4747El patrón de diseño decorador resuelve el problema al revés: la plantilla es decorada después de que el contenido es mostrado por una plantilla global, llamada **layout** en Symfony: 
    4848 
    49 ![Layout](http://www.symfony-project.org/images/jobeet/1_2/04/layout.png) 
     49![Layout](http://www.symfony-project.org/images/jobeet/1_3/04/layout.png) 
    5050 
    5151El layout de una aplicación se llama `layout.php` y se puede encontrar en el directorio `apps/frontend/templates/`. Este directorio contiene todas las plantillas globales para una aplicación. 
     
    151151>y ponerlo bajo el directorio `web/`. 
    152152 
    153 ![El módulo job con un layout y recursos](http://www.symfony-project.org/images/jobeet/1_2/04/job_layout_assets.png) 
     153![El módulo job con un layout y recursos](http://www.symfony-project.org/images/jobeet/1_3/04/job_layout_assets.png) 
    154154 
    155155>**TIP** 
     
    185185      javascripts:    [] 
    186186 
    187       has_layout:     on 
     187      has_layout:     true 
    188188      layout:         layout 
    189189 
     
    403403    </div> 
    404404 
    405 ![Página de inicio](http://www.symfony-project.org/images/jobeet/1_2/04/homepage.png) 
     405![Página de inicio](http://www.symfony-project.org/images/jobeet/1_3/04/homepage.png) 
    406406 
    407407La función `url_for()` en esta plantilla es un helper symfony que vamos a discutir mañana. 
     
    447447</propel> 
    448448<doctrine> 
    449         <small>posted on <?php echo date('m/d/Y', strtotime($job->getCreatedAt())) ?></small> 
     449        <small>posted on <?php echo $job->getDateTimeObject('created_at')->format('m/d/Y') ?></small> 
    450450</doctrine> 
    451451      </div> 
     
    489489>que cargarlo manualmente utilizando el helper `use_helper()`. 
    490490 
    491 ![Página del Puesto de Trabajo](http://www.symfony-project.org/images/jobeet/1_2/04/job.png) 
     491![Página del Puesto de Trabajo](http://www.symfony-project.org/images/jobeet/1_3/04/job.png) 
    492492 
    493493Los Slots 
     
    503503En Symfony, cuando una zona del layout depende de la plantilla para mostrarse, necesitas definir un slot: 
    504504 
    505 ![Slots](http://www.symfony-project.org/images/jobeet/1_2/04/layout_slots.png) 
     505![Slots](http://www.symfony-project.org/images/jobeet/1_3/04/layout_slots.png) 
    506506 
    507507Añade un slot al layout para permitir que el título sea dinámico: 
     
    594594En cuanto a las excepciones, la página que aparece al usuario es diferente en el entorno `prod` del entorno `dev`: 
    595595 
    596 ![error 404 en el entorno dev](http://www.symfony-project.org/images/jobeet/1_2/05/404_dev.png) 
    597  
    598 ![error 404 en el entorno prod](http://www.symfony-project.org/images/jobeet/1_2/05/404_prod.png) 
     596![error 404 en el entorno dev](http://www.symfony-project.org/images/jobeet/1_3/05/404_dev.png) 
     597 
     598![error 404 en el entorno prod](http://www.symfony-project.org/images/jobeet/1_3/05/404_prod.png) 
    599599 
    600600>**NOTE** 
     
    702702>[API documentation](http://www.symfony-project.org/api/1_2/) para aprender más 
    703703>acerca de todas las clases internas de Symfony. 
     704>**TIP** 
     705>Las clases [`sfAction`](http://www.symfony-project.org/api/1_3/sfAction), 
     706>[`sfRequest`](http://www.symfony-project.org/api/1_3/sfRequest), y 
     707>[`sfResponse`](http://www.symfony-project.org/api/1_3/sfResponse)  
     708>dan muchos otros métodos útiles. No dudes en navegar por la  
     709>[documentación API](http://www.symfony-project.org/api/1_3/) para aprender más 
     710>acerca de todas las clases internas de Symfony. 
    704711 
    705712Nos vemos mañana