2011-05-25 15 views
5

Tengo una clase de calendario que genera una tabla HTML con una celda de tabla que representa un día del mes, sin embargo, debería estar incrustando HTML en un archivo de clase. Mi preocupación es que si alguna vez tengo que enmendar el HTML (es decir, agregar una identificación a un elemento), entonces tendría que ajustar el archivo de clase.Incrustar html en el archivo php class

Actualmente no uso el patrón MVC en mi proyecto, por lo que tener una vista no es una opción.

Mi reducir los archivos de clase es el siguiente (para este ejemplo he asumido que el 1 mes es de 4 semanas):

class calendar { 

function __construct(){ 

} 

function output() { 
    print "<table>"; 
    for ($week=0; $week < 4; $week++) { 
     print "<tr>"; 
     for ($day=0; $day < 7; $day++) { 
      print "<td></td>"; 
     } 
     print "</tr>"; 
    } 
    print "</table>"; 
} 

¿Hay otros métodos que no he pensado en lo que mantendría la HTML separado del archivo de clase Gracias de antemano

+1

incluyen la clase de calendario en un archivo php (index.php), y el uso: $ cal = new Calendar(); , ahora puedes hacer esto: $ cal-> week; (depende de cómo haya escrito la clase), tal vez 'print_r ($ cal)' primero – Ruben

+0

Esta pregunta no se ajusta a la etiqueta incrustada, consulte http://stackoverflow.com/tags/embedded/info. La etiqueta eliminada –

+0

puede marcar esta pregunta: http://stackoverflow.com/questions/62617/whats-the-best-way-to-separate-php-code-and-html?page=1&tab=votes#tab-top – smack

Respuesta

1

Una solución muy popular para su problema es usar http://www.smarty.net/ o el motor de plantilla de orden para dividir su lógica de presentación de la lógica de negocios.

1

Puede tener algún tipo de clase de ayuda HTML que genere su código. La clase puede tener createTable, addRow, closeTable, createForm, addField, etc. Las propiedades principales se envían en la llamada al método, y las constantes se codifican directamente en el HTML.

3

La más sencilla de plantillas

// myTemplate.phtml 
<div><?php echo $xy; ?></div> 

// SomewhereElse.php 
class MyClass { 
    public function myMethod() { 
    $xy = 'something'; 
    include('myTemplate.phtml'); 
    } 
} 
1

yo simplemente escribir un archivo HTML y poner marcadores de posición allí.

<!DOCTYPE HTML> 
<html> 
... 
<?php echo output() ?> 
... 
Cuestiones relacionadas