Seguimos con symfony, 2 trasnochadas y dos monitores después

Enviado por clbustos el Lun, 26/05/2008 - 22:10.

Cómo ha se habrán dado la lata con los dos artículos anteriores sobre symfony, he tenido que tragarme más de un par de trasnochadas mejorando una aplicación en symfony que debo sacar sí o sí esta semana.

Después de leer casi completo EL LIBRO y partes de la API, ya casi, casi, puedo decir que entiendo como funciona el bicho.

En primer lugar, todavía me parece muy razonable la forma en la cual estructuraron la capa "Control". No es nada del otro mundo desarrollarlo (es cosa de hacer un par de includes bien puestos en función del URL), pero el sistema de ruteo con las URL no está mal. Casi drupaliano :)

La capa Vista es un caos. Funciones que se sobreponen unas sobre otras, sin ninguna que se atreva a realizar el trabajo completo. Por ejemplo, copio verbatim todas las formas en las que se puede crear un select, según EL LIBRO. Y eso que faltan...

  1.  // Dropdown list (select)
  2.  <?php echo select_tag('payment',
  3.   '<option selected="selected">Visa</option>
  4.   <option>Eurocard</option>
  5.   <option>Mastercard</option>')
  6.  ?>
  7.   => <select name="payment" id="payment">
  8.   <option selected="selected">Visa</option>
  9.   <option>Eurocard</option>
  10.   <option>Mastercard</option>
  11.   </select>
  12.  
  13.  // List of options for a select tag
  14.  <?php echo options_for_select(array('Visa', 'Eurocard', 'Mastercard'), 0) ?>
  15.   => <option value="0" selected="selected">Visa</option>
  16.   <option value="1">Eurocard</option>
  17.   <option value="2">Mastercard</option>
  18.  
  19.  // Dropdown helper combined with a list of options
  20.  <?php echo select_tag('payment', options_for_select(array(
  21.   'Visa',
  22.   'Eurocard',
  23.   'Mastercard'
  24.  ), 0)) ?>
  25.   => <select name="payment" id="payment">
  26.   <option value="0" selected="selected">Visa</option>
  27.   <option value="1">Eurocard</option>
  28.   <option value="2">Mastercard</option>
  29.   </select>
  30.  
  31.  // To specify option names, use an associative array
  32.  <?php echo select_tag('name', options_for_select(array(
  33.   'Steve' => 'Steve',
  34.   'Bob' => 'Bob',
  35.   'Albert' => 'Albert',
  36.   'Ian' => 'Ian',
  37.   'Buck' => 'Buck'
  38.  ), 'Ian')) ?>
  39.   => <select name="name" id="name">
  40.   <option value="Steve">Steve</option>
  41.   <option value="Bob">Bob</option>
  42.   <option value="Albert">Albert</option>
  43.   <option value="Ian" selected="selected">Ian</option>
  44.   <option value="Buck">Buck</option>
  45.   </select>
  46.  
  47.  // Dropdown list with multiple selection (selected values can be an array)
  48.  <?php echo select_tag('payment', options_for_select(
  49.   array('Visa' => 'Visa', 'Eurocard' => 'Eurocard', 'Mastercard' => 'Mastercard'),
  50.   array('Visa', 'Mastercard'),
  51.  ), array('multiple' => true))) ?>
  52.  
  53.   => <select name="payment[]" id="payment" multiple="multiple">
  54.   <option value="Visa" selected="selected">Visa</option>
  55.   <option value="Eurocard">Eurocard</option>
  56.   <option value="Mastercard">Mastercard</option>
  57.   </select>
  58.  // Drop-down list with multiple selection (selected values can be an array)
  59.  <?php echo select_tag('payment', options_for_select(
  60.   array('Visa' => 'Visa', 'Eurocard' => 'Eurocard', 'Mastercard' => 'Mastercard'),
  61.   array('Visa', 'Mastercard')
  62.  ), 'multiple=multiple') ?>
  63.   => <select name="payment" id="payment" multiple="multiple">
  64.   <option value="Visa" selected="selected">
  65.   <option value="Eurocard">Eurocard</option>
  66.   <option value="Mastercard" selected="selected">Mastercard</option>
  67.   </select>

Horrendo... En Drupal, con theme("select") basta y sobra.... Sobre la capa Modelo ya hablamos, así que seguiré más rato, porque acaba de llegar mi mujer.

Imagen de Blax

Se te han olvidado los helpers Object, object_select_tag() que a su vez si usas doctrine estará sobreescrito en el plugin para Doctrine, el cual a su vez para personalizarlo y usar internacionalización (cosa que necesito) tendrás que volver a sobreescribirlo!, pan comido! jaja </ironía>

Enviado por Blax (no verificado) el Mar, 27/05/2008 - 06:02.
Imagen de clbustos

Juas. Verdad. Al final, cualquier pequeña modificación hace más cómodo escribir el select directo en HTML.

Enviado por clbustos el Mar, 27/05/2008 - 10:31.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato