A la 'pa' de Dio! ^^
Buenas gente!
Soy bastante novato en PHP, pero habiendome pelado los dedos con muchas otras cosas y para el caso específico, con JSP con implementación MVC, he podido adaptarme rapidísimamente.
Estoy creando algunas virguerias. Realmente, PHP se presenta genial (en su momento lo detracté y lo demonicé, pero dije que quizas algun dia cambiaria de parecer, y aquí estoy... xD), pero tengo dudas en la estructuración de ficheros y los accesos en general, ya que parto del concepto "servlet", y aquí, vamos, ni de broma! xD
Así que mas o menos lo tengo todo bastante clarito, pero me surgen dudas de implementación en algunos casos.
Por lo general, tengo FICHEROS PHP, que realizan una tarea determinada, y posteriormente, se redirige el tráfico via header("Location: ...");
Ninguno de estos ficheros contiene HTML y por lo tanto, no hay problema.
Hasta el momento todo bien, pero ahora, he necesitaod cargar contenido HTML dinámico mediante import(). Y ahí surgen las dudas:
En JSP, te enseñan a mezclar LO MÍNIMO HTML con JSP. En PHP, es evitable, pero casi siempre hay algo de mezcla. Con JSP, los includes solian ser de webs enteras, con su header y body.
Pero aquí, ¿es correcto tomarme la licencia de no añadir ni header ni body ni ostias, e ir directamente al trozo de html que me interesa? Porque lo tengo así, y funciona bien, obviamente. Y a nivel visual al hacer "ver codigo de la web", es limpio y correcto, porque sino, es como una web dentro de otra web (como sucedia con JSP).Cuanta mezcla de codigo con HTML puede/debe haber mas o menos?
Os enseño el tema concreto, para que lo evalueis o me deis algunas alternativas de diseño:
NOTA: pongo "xxx", porque no es relevante el codigo en si, solo la estructura.
index.php
....
<div id="xxx">
<?php if(!isset($_GET["xxx"])){?>
... una serie de cosas varias ...
<?php }else{?>
<?php
include 'xxx.php';?> <··· aquí me quiero centrar. (no os fijeis en detalles, debo limpiar el codigo aún)
<?php }?>
</div>
....
xxx.php
<?php
session_start();
include 'yyy.php'; <··· aqui tambien quiero centrarme.
?>
<div class="xxx">
<?php
$filas = doSelect("una query concreta, da igual"); <··· ojo a esta función.
echo "<table>\n";
while ($fila = mysql_fetch_array($filas, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($fila as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
mysql_free_result($filas);
?>
</div>
yyy.php
aquí, hay algunas function(). Nada de html.
Entre ellas, esta la de doSelect() que he señalado.
Lo veis una buena estructura?
Prescindiriais de yyy.php, y lo pondriais directamente arriba en xxx.php? Lo pregunto porque no deja de ser un ficher/web accesible y si alguien lo escribe en la URL, sencillamente sale una web blanca. No se puede hacer nada, porque no hay html, pero no mola.
¿Se puede hacer como en JSP que determinadas webs en una carpeta concreta WEB_INF, no son accesibles desde URL?
Fijaos que xxx.php, lo he puesto TODO entero. Ahora no hace mucho. Pero fijaos que SI mezcla html con php (el DIV). He decidido no hacer toda la estructura HTML (header, body...) y solo añadir el codigo HTML a saco porque será importado en index.php, es eso correcto? Mejor crear la web entera por si alguien accediera mediante URL?
Muchas mercés!
Si se me van ocurriendo preguntas, os las lanzo!
THX!