zend tutorial mac framework espaƱol docs composer php zend-framework2

php - tutorial - zend framework download



ConfiguraciĆ³n de ZF2 View helpers (1)

Estoy aprendiendo Zend Framework 2 y estoy tratando de cambiar la configuración de view helpers. Cada uno tiene métodos para reconfigurar variables de tema, por ejemplo, el helper FormCollection tiene $ wrapper variable y setters / getters. Al igual que para la configuración de Flashmessenger (descrita en la documentación), he creado config dentro de module.config.php:

''view_helper_config'' => array( ''flashmessenger'' => array( ''message_open_format'' => ''<div%s><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button><ul><li>'', ''message_close_string'' => ''</li></ul></div>'', ''message_separator_string'' => ''</li><li>'' ), ''formcollection'' => array( ''wrapper'' => ''<fieldset%4$s>TEEST %2$s%1$s%3$s</fieldset>'', ''label_wrapper'' => ''TEST <legend>%s</legend>'', ),

Esto no funciona

---- editar:

Acabo de descubrir que view_helper_config solo se usa en el servicio FlashMessengerFactory. Por lo tanto, es imposible configurar ayudantes de visualización de esta manera. Tal vez alguien tiene otras sugerencias?


La mejor manera (por ahora) que encontré es anular el ayudante existente. Entonces, con el ejemplo de formCollection, mi module.config.php:

''view_helpers'' => array( ''invokables'' => array( ''formCollection'' => ''MyLibrary/View/Helper/FormCollection'', ),

Donde MyLibrary es, por supuesto, cualquier espacio de nombres que desee. Dentro de mi asistente de visualización, solo hay algunas variables anuladas:

namespace MyLibrary/View/Helper; use Zend/Form/ElementInterface; use Zend/Form/View/Helper/FormCollection as BaseFormCollection; class FormCollection extends BaseFormCollection { /** * This is the default wrapper that the collection is wrapped into * * @var string */ protected $wrapper = ''<fieldset%4$s>TEST %2$s%1$s%3$s</fieldset>''; /** * This is the default label-wrapper * * @var string */ protected $labelWrapper = ''<legend>TEST 2 %s</legend>''; }

El uso es el mismo que antes, porque dentro de la configuración invokables usé el mismo nombre: formCollection.

No estoy seguro de que sea la mejor manera de hacerlo. Pero es rápido, fácil de hacer, y es fácil anular totalmente los métodos de ayuda (por ejemplo, render ()). Por cierto, en mi opinión es la única forma. Por supuesto, podemos utilizar métodos de ayuda antes de su uso, por ejemplo, ver script:

$this->formCollection()->setWrapper(''new wrapper''); // now its use new wrapper echo $this->formCollection(''collection'');