Como muchos otros sugirieron, podría usar el MVC, o si no desea implementar una estructura MVC estricta, debería utilizar un sistema de plantillas.
Esto no significa que tenga que aprender inteligentemente, puede escribir su propio sistema de plantillas, con solo la función que realmente necesita.
Si está trabajando con diseñadores y el rendimiento no es su primer punto, puede construir un archivo html con marcadores de posición simples donde el contenido dinámico tiene que ir, y luego reemplazarlo con php (str_replace, preg_replace) .. pero esto más lenta su aplicación.
Ejemplo:
//html template
// the @[var] syntax is just as an example
<title>@[title]</title>
<body>
@[content]
</body>
y el archivo de plantillas:
$title = 'Hello world';
if($id == 2){
$content = get_content();
}else{
$content = get_another_content();
}
//really, this is just as example ;)
ob_start();
include('template.html');
$output = ob_get_clean();
echo str_replace(
array('@[title]', '@[content]'),
array($title, $content),
$output
);
Este es realmente un ejemplo básico, y tiene 2 problemas:
- rendimiento;
- Los diseñadores deben tener instrucciones de NO tocar los marcadores de posición.
Una solución más simple puede ser:
//html template
<title><?php echo $title; ?></title>
<body>
<?php echo $content; ?>
</body>
y php:
$title = 'Hello world';
if($id == 2){
$content = get_content();
}else{
$content = get_another_content();
}
include('template.php');
Pero html eco debe ser reducida como sea posible, no es una buena práctica y mezclar la lógica con contenido Logic is logic, data is data, and life is good
La belleza está en ... realmente no importa. Si trabajas con diseñadores, es posible que les gusten las etiquetas cortas. – bschaeffer