Llevo poquito en este foro, pero he observado que muchos trozos de código que se publican son una mezcla de html con inserciones php, como por ejemplo:
Código PHP:
<?php
$matriz[0]["titulo"]="quienes somos";
$matriz[0]["link"]="http://www.miweb.com/quienes somos";
$matriz[1]["titulo"]="producto";
$matriz[1]["link"]="http://www.miweb.com/producto";
$nombremenu="menu principal";
?>
<div class="menu">
<p><?php echo $nombremenu;?></p>
<ul>
<?php foreach($matriz as $i=>$valor){?>
<li><a href="<?php echo $valor["link"];?>"><?php echo $valor["titulo"];?></a></li>
<?php }?>
</ul>
</div>
1.la presentación de los datos
2.las reglas de negocio...el codigo necesario para obtener dichos datos
3.el diálogo con la base de datos
*
No es necesario ser un experto en programacion para aplicarlo. Simplemente es cuestión de planteamiento.
El siguiente ejemplo va destinado a mostar un planteamiento y para ser entendido por principiantes.No és para nada, purista, ya que no se encuentra en funciones aparte la capa 1 y la 2, pero como ejemplo, valdrá.
Una estructura con 3 capas equivalente al código de arriba seria:
Código PHP:
<?php
echo Menu();
function Menu(){
//capa 3. Obtencion de los datos.
/*$Matriz=GetData("select titulo,link from opcionesmenu"); donde GetData
tendria los comandos mysql, pdo, odbc... para acceder a la db, ejecutar la
consulta y devolver el array)*/
$matriz[0]["titulo"]="quienes somos";
$matriz[0]["link"]="http://www.miweb.com/quienes somos";
$matriz[1]["titulo"]="producto";
$matriz[1]["link"]="http://www.miweb.com/producto";
// capa 1. presentacion de datos.
$plantilla="
<div class='menu'>
<p>(nombremenu)</p>
<ul>
(opcionesmenu)
</ul>
</div>";
$plantillamenu="<li><a href='(link)'>(titulo)</a></li>";
//capa 2. Manipulación de los datos
foreach($matriz as $i=>$valor){
$dato["opcionesmenu"].=LlenaPlantilla($plantillamenu,$valor);
}
$dato["nombremenu"]="menu principal";
$html=LlenaPlantilla($plantilla,$dato);
return $html;
}
//esta funcion llena $pPlantilla con los valores de la matriz.
function LlenaPlantilla($pPlantilla,$pMatriz){
foreach($pMatriz as $variable=>$valor){
$pPlantilla=str_replace("($variable)",$valor,$pPlantilla);
}
return $pPlantilla;
}
?>
1.Sobre todo, legibilidad y fácil mantenimiento del codigo.
2.un diseñador será capaz de manejar la capa 1 sin saber nada de php.
3.tenemos el acceso a datos totalmente centralizado, haciendo menos traumatico un cambio de base de datos (de mysql a sqlserver...)
Espero que le sirva a alguien!
Que os parece este planteamiento?
Soy freelance, totalmente autodidacta. Llevo muchos años programando solo, sin la posibilidad de compartir conocimiento con nadie. Seguro, que cometo un monton de errores que yo ni detecto y que seguro alguien verá.
Dicho esto, por favor,sed duros y despiadados con el código.
Gracias de todo corazón por la existencia de foros como este, que nos dan la oportunidad de compartir conocimiento por pasión, no por dinero.