Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Ver: Modo: Orden:
Programando en PHP | 22 comentarios (20 temáticos, 2 editoriales, 0 ocultos)
Ventajas de las plantillas (4.66 / 6) (#7)
por HnZeKtO a las Sun Jul 13th, 2003 at 01:30:16 PM CET
(Información Usuario) http://www.mundolinux.net/

Pues la principal ventaja es la abstracción y la reutilización de código, esto se consigue gracias a un sistema de plantillas que sea orientado a objetos (no necesariamente) y que tenga por otro lado las plantillas.

Lo que tú consigues con tener una serie de funciones a las que les pasas parámetros es separar el ModeloControlador de la aplicación, respecto de la Vista o presentación final, es un buen comienzo, aunque ahora bien, ¿qué pasa si quieres hacer otra aplicación nueva totalmente distinta? ¿puedes reutilizar esas funciones? Puede que sí o puede que no, todo depende de lo generales que las hubieses programado inicialmente, pero lo más probable es que, aparte de cambiar retales de código HTML, también tengas que retocar algunos parámetros que le pasas a las funciones.

Ahora bien, si tienes una clase intermedia (otra capa más de abstracción), con una serie de métodos tales como: seleccionar_plantilla(..), asignar_valor_a_variable(vble,valor), mostrar_resultado(),... así tienes por un lado la clase del sistema de plantillas que va a permanecer _invariable_, y por otro lado, una serie de plantillas en HTML que incluirán {VARIABLE} en su código, donde se quiera incluir algún valor obtenido dinámicamente, con esto consigues independizar el código PHP del código HTML (y derivados como CSS y Javascript).

¿Qué implica esto? Pues que para modificar el diseño de una web, no tienes que tocar ni una sola línea de código PHP, esto a nivel de trabajo en grupo es perfecto, para que un diseñador web no tenga que conocer nada de PHP y viceversa, un programador web, no tenga que tener buen gusto a la hora de diseñar.

Por otro lado (y por último), la forma de trabajar de los distintos sistemas de templates es muy distinta por ejemplo entre Smarty y SmartPHP, el primero hace un "parseado" de cada .tpl (o .thtml, o cualquiera que sea la extensión de la plantilla) en tiempo real, o sea, cada vez que se hace una petición, eso claro está, provoca un descendimiento de rendimiento. SmartPHP intenta mejorar esa falta de rendimiento haciendo un "cacheo" de los .tpl convirtiendo los <html>...{VARIABLE} ...</html> en <html>... <?php echo $VARIABLE ?> ...</html>

Mejor lo dejo ya, porque me va a quedar como si fuera otro artículo y si sigo así voy perder oportunidades de hacer segundas partes más profundas en el tema :)

Espero que me haya explicado bien y me hayas comprendido, y sobre todo que te sirva de ayuda.

Saludos

Cayetano
[ Padre ]


Separación de diseño y lógica = Utopía (3.00 / 1) (#11)
por ochoto (ochoto_@_diariolinux.com) a las Sun Jul 13th, 2003 at 10:52:51 PM CET
(Información Usuario) http://diariolinux.com

¿Qué implica esto? Pues que para modificar el diseño de una web, no tienes que tocar ni una sola línea de código PHP

Tal vez no toques ni una línea de código PHP pero tendrás que modificar el código del lenguaje que use la plantilla (por ejemplo Smarty)

Personalmente prefiero que sea el mismo para las plantillas y para la lógica de negocio por unificar. Al fín y al cabo si realmente hay que tocar código te va a tocar hacerlo igual pues un diseñador no lo va modificar sea en Smarty o en PHP. A lo que me refiero es que en tu exposición suena muy bonito porque no hay más que sustitución de variables que parece muy aséptico, pero tarde o temprano necesitaras estructuras de control para la lógica de _presentación_: iteraciones, secciones condicionales, etc...

Por ejemplo:
Smarty:

<table border="0" cellspacing="0" cellpadding="5">
      <tr>
            <td>id</td>
            <td>firstname</td>
            <td>surname</td>
      </tr>
      {section name=i loop=$people}
      <tr>
            <td>{$people[i].id}</td>
            <td>{$people[i].firstname}</td>
            <td>{$people[i].surname}</td>
      </tr>
      {/section}
</table>

PHP:

<table border="0" cellspacing="0" cellpadding="5">
      <tr>
            <td>id</td>
            <td>firstname</td>
            <td>surname</td>
      </tr>
      <? foreach ($people as $p) { ?>
      <tr>
            <td><?= $p.id ?></td>
            <td><?= $p.firstname ?></td>
            <td><?= $p.surname ?></td>
      </tr>
      <? } ?>
</table>


En cuanto al lenguaje es casi cuestión de gustos pero porque usar 2 cuando con PHP me vale?

[ Padre ]


ZPT sí que lo permite (4.00 / 2) (#12)
por Khrome (javiermNO@SPAMaditel.org) a las Tue Jul 15th, 2003 at 10:27:10 AM CET
(Información Usuario) http://zope.aditel.org/~javierm

ZPT es el sistema de plantillas de Zope. Inserta la "programación" mediante atributos en las etiquetas HTML. Estos atributos están en un espacio de nombres propio, por lo que los editores gráficos los ignoran y la programación permanece aunque se cambie el diseño.

[ Padre ]


¿Lo has probado? (4.00 / 2) (#13)
por Colegota (colegota@villanos.es, digo net.) a las Tue Jul 15th, 2003 at 11:05:48 AM CET
(Información Usuario) http://villanos.net/mapamundi

Buenas,

la explicación que dan en ese enlace del ZPT es bastante infumable y encima la publicidad se superpone a algunos ejemplos.

¿Tienes experiencia con ZPT? Puedes aportar algo más que los artículos esos? Aunque sea un resumen.

Yo de momento sigo secundando lo de la utopía que dice Ochoto.
En general las plantillas las veo como algo que te permite (simplificando) "cambiar los colorines", pero siempre que partas de la base que todas las páginas son iguales. Cabecera, tres columnas y pie.

Precísamente, una de las ventajas que le veo al poder "programar" el diseño de la página generando el html desde php, es precísamente el poder aplicar distintos diseños (no aspectos ni temas) a un mismo contenido.
Si bien eso no te quita de entremezclar "generación de código" con "generación de datos" (que no es lo mismo que html y sql).

Saludos,
Colegota


[ Padre ]


¿Y la hojas de estilo? (4.33 / 3) (#17)
por Tomby (tomby@QuItAeStOtomby.tkNoSpAm) a las Tue Jul 15th, 2003 at 11:21:26 PM CET
(Información Usuario) http://www.tomby.tk/

Respecto a lo "programar el diseño", de lo que se trata es de que el código html sea totalmente independiente de cómo se va ha presentar la página, eso se debería dejar exclusivamente a las hojas de estilo. De hecho en XHTML se han marcado como "deprecated" todos los atributos y etiquetas de presentación y en las sucesivas versiones serán eliminadas. Con CSS2 no solo puedes "cambiar los colorines" sino que también se puede determinar la posición de los distintos elementos en la página, cambiando radicalmente la página únicamente con modificar la hoja de estilo.

Otra cuestión es que te sean útiles las plantillas. Yo como programador que soy prefiero no utilizarlas, pero creo que están más orientadas para que los diseñadores puedan meter mano en las páginas sin necesidad de tener conocimientos de programación. Pensemos que en la mayoría de proyectos existen distintos roles y que las plantillas nos permiten que los diseñadores y los programadores se dediquen a lo suyo.

También me gustaría comentar lo que he visto en este hilo, la afirmación de que separar el diseño de la logica es una utopia. No es que sea una utopia, sino que es absolutamente necesario para que el desarrollo en cuestión sea mantenible. Si se mete todo en el mismo saco lo que obtenemos es un caos. En esto nos ayuda la aplicación inteligente de los patrones de diseño.

Saludos!

[ Padre ]


Bien, gracias. :) (4.00 / 2) (#18)
por Colegota (colegota@villanos.es, digo net.) a las Wed Jul 16th, 2003 at 09:54:03 AM CET
(Información Usuario) http://villanos.net/mapamundi

Buenas,

no mencioné las hojas de estilo por no hacer el mensaje más largo. Mi respuesta estaba limitada exclusivamente al uso de plantillas.
Hoy por hoy parece que una combinación xhtml con hojas de estilo es lo más apropiado para independizar "la presentación" de muchas cosas. Y muy potente además. No puedo explayarme mucho ya que lo que conozco es por lo que estoy leyendo para comenzar a implementarlo. Y tiene muy buena pinta pero hasta dentro de algún tiempo no podré hablar por propia experiencia.
Y desde luego, que dicha combinación permite bastante más que cambiar los colorines. Que por cierto, ya puse entre paréntesis aún cuando me refería a las plantillas.

Con hojas de estilo sí que puedes decidir en tiempo "de generación" no sólo cómo aparece algo, sino incluso dónde. Y si aparece o no.
Ese tipo de operaciones no son posibles con plantillas. Como no resulta muy práctico aunque se pueda hacer el diseñar por ejemplo un gestor de contenido que pueda generar salida en diferentes formatos (x/html, xml, wap, pdf,...) y basarse en plantillas porque necesitarías una plantilla para cada uno. Y por que aunque resulte irónico, con plantillas estás ligando el código con los datos en el mismo fichero (aunque los generes desde otro).
[Ya se que has dicho que tú no utilizas plantillas, pero aprovecho el mensaje para hablar de lo que no dije en el primero]

Respecto a lo de por y para qué se han hecho las plantillas, pues vale. La idea es una cosa y la realidad o el sentido práctico otra.

Y separar diseño y lógica... Creo que una cosa es un código que intercale etiquetas html con comandos php y mysql en el mismo fuente y otra que se pueda realmente separar diseño y lógica.
Puedes llegar a varios niveles de abstracción. Encapsular todo lo que puedas. Crearte bibliotecas de APIs para todo... pero llegar a tener algo por un lado que "escupa datos" y algo por otro que les de forma... lo veo difícil.
La única forma que se me ocurre es desde luego con programación orientada a objeto en algo parecido al MVC (Modelo Vista Controlador) de java, pero aún así...

De todas formas, eso es lo que se me ocurre a mí. Pero por supuesto que estoy abierto a estudiar cualquier cosa que otros hayan podido hacer. Pero que se haya hecho. Que teorías cualquiera puede formular y yo ya he leído muchas.

Saludos,
Colegota


[ Padre ]


 
Tengo experiencia (3.00 / 3) (#14)
por Khrome (javiermNO@SPAMaditel.org) a las Tue Jul 15th, 2003 at 11:21:21 AM CET
(Información Usuario) http://zope.aditel.org/~javierm

He hecho la web de ADITEL y una sobre Software Libre en la Universidad Jaume I. También la web de las Jornadas Informáticas de Verano está hecho por un compañero con ZPT. De hecho hoy mismo hay una charla sobre ZPT en dichas jornadas. Si quieres ver un caso real de ZPT puedes pinchar en el enlace view_source que hay en cada una de las página de las jornadas. Lo siento pero ahora no tengo tiempo para hacer aquí un minitutorial.

[ Padre ]


 
PHP: lenguaje de plantillas (3.33 / 3) (#15)
por jcantero (jcantero@agujero-negro.escomposlinux.org) a las Tue Jul 15th, 2003 at 03:48:07 PM CET
(Información Usuario) http://www.escomposlinux.org/jcantero/

Yo estoy con ochoto. PHP se creó precisamente como un lenguaje de plantillas. Si interpones un sistema de plantillas entre PHP y la aplicación web, lo único que estás consiguiendo -en mi opinión- es meter un nivel de complejidad que es redundante.

Por favor, no confundamos la necesidad de organizar bien el código con la necesidad de un nivel de abstracción adicional, o terminaremos reescribiendo un "php" sobre PHP.

--
"Papá, ¡Internet es más que una red pornográfica global!" -- Lisa Simpson
[ Padre ]


 
Buscando rapidez. (none / 0) (#20)
por festuc (mi nick en el correo gratuito de google) a las Fri Oct 24th, 2003 at 06:01:57 PM CET
(Información Usuario) http://festuc.info

tanta rapidez, hi he apretat enter! juas!   
yo para escrivir más ràpido uso una libreria propia ;)
http://giro.ath.cx/inc/taula.php~
</a>
en mi caso escriviria
<?php
tab(); echo id;
   tod(); echo firstname;
   tod(); echo surname;
foreach($people as $p){
   tor(); echo $p.id;
      tod(); echo $p.firstname;
      tod(); echo $p.surname;
}
ttable(); //tenca table (tt)
?>
a ti te salen 14 lineas y a mi 10 un 40% menos ;)

[ Padre ]


 

Programando en PHP | 22 comentarios (20 temáticos, 2 editoriales, 0 ocultos)
Ver: Modo: Orden:
Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda