Si no desea utilizar un motor de plantillas, puede hacer uso de las capacidades básicas de creación de plantillas de PHP.
En realidad, solo debe escribir el código HTML, y cada vez que necesite generar el valor de una variable, abra una parte de PHP con <?php
y ciérrela con ?>
. Asumiré para los ejemplos que $data
es su objeto de datos.
Por ejemplo:
<div id="fos"><?php echo $data->getWhatever(); ?></div>
Tenga en cuenta que, todas las estructuras de control PHP (como if
, foreach
, while
, etc.) también tienen una sintaxis que se puede utilizar para crear plantillas. Puede buscarlos en sus páginas de manual de PHP.
Por ejemplo:
<div id="fos2">
<?php if ($data->getAnother() > 0) : ?>
<span>X</span>
<?php else : ?>
<span>Y</span>
<?php endif; ?>
</div>
Si sabe que el uso de la etiqueta corta será habilitado en el servidor, por simplicidad puede utilizarlos también (no se aconseja en XML y XHTML). Con las etiquetas cortas, puede simplemente abrir su parte PHP con <?
y cerrarla con ?>
. Además, <?=$var?>
es una forma abreviada de hacer eco de algo.
Primer ejemplo con las etiquetas cortas:
<div id="fos"><?=$data->getWhatever()?></div>
Usted debe ser consciente de dónde se utiliza saltos de línea y espacios embargo. El navegador recibirá el mismo texto que escribe (excepto las partes de PHP). Lo que quiero decir con esto:
Escribir este código:
<?php
echo '<img src="x.jpg" alt="" />';
echo '<img src="y.jpg" alt="" />';
?>
no es equivalente a la siguiente:
<img src="x.jpg" alt="" />
<img src="y.jpg" alt="" />
Debido a que en el segundo tiene una real \n
entre las img
elementos, que el navegador traducirá como un carácter de espacio y se mostrará como un espacio real entre las imágenes si están en línea.
¿por qué no quieres utilizar ningún lenguaje de plantilla? – confiq
PHP se puede utilizar como un lenguaje de plantillas en sí mismo, para esto es posible que necesite etiquetas cortas activadas (no necesariamente, pero es menos escribir en ese momento). – kapa
@baz: Claro. También puede escribir excelentes sitios web en Assembler. – NikiC