Gracias a la de veces que me ha animado mi amigo Manuel de Ingeniuz, persona que me introdujo a la programación PHP utilizando el Framework de Zend allá por la version 0.15, esta semana me he decidio a aportar mi “granito” de arena a la comunidad y he incluido mi primera “proposal” en el wiki de colaboradores de zend, para que sea debatida y revisada por la comunidad.
De las varias “ideas” que tengo por ahí para compartir, la primera ha sido una pequeña mejora al Zend_Json. El Zend_Json permite convertir un objeto o array PHP a su equivalente javascript-json utilizando su método “encode”. Funciona muy bien, y sin embargo, no es posible o no esta prevista la posibilidad de que se puedan incluir funciones o expresiones nativas javascript en el lado servidor, que sean correctamente traducidas a su equivalente javascript-json.
Me explico. El siguiente código no funcionaría:
1 2 3 4 5 6 7 8 |
$arrayToBeEncoded = array( 'string'=>'cadena de texto to be encoded', 'function'=>functionJavascript(){...codigo de funcion javascript} ); Zend_Json::encode($arrayToBeEncoded); |
Como es lógico la linea ‘function’=>functionJavascript….. dará un error PHP, ya que debiera ir entrecomillada. Aunque si la entrecomillamos, no será tratada como función al llegar al interprete javascript del navegador, sino como cadena de texto o string (como es lógico).
Mi propuesta viene a tratar de resolver esta necesidad/problema utilizando un sistema parecido al que ya se utiliza con Zend_Db_Expr. Modificando levemente el proceso de encoding del Zend_Json y apoyándonos en la clase propuesta: Zend_Json_Expr, sera posible incluir en el lado servidor expresiones nativas javascript que sean traducidas correctamente a Json-javascript. Para ello el ejemplo anterior se re-escribiría así:
1 2 3 4 5 6 7 8 |
$arrayToBeEncoded = array( 'string'=>'cadena de texto to be encoded', 'function'=>new Zend_Json_Expr('functionJavascript(){...codigo de funcion javascript}' ); Zend_Json::encode($arrayToBeEncoded); |
Podeis ver más sobre como funcionaría mi propuesta en esta página del wiki de zend framework
Se ha publicado ya la version 1.8 del Zend Framework y este componente, despues de varias mejoras ya es oficial.
La alegría es que en el Zend Framework 1.8 Press Release aparece mi nombre en la lista de agradecimientos.
Gracias a vosotros por el Framework con el que haceis más fácil mi trabajo. Esta aportación solo devuelve una mínima parte de lo que a mi me ha dado el ZF.