Foros del Web » Programando para Internet » PHP »

Duda sobre "buenas maneras"

Estas en el tema de Duda sobre "buenas maneras" en el foro de PHP en Foros del Web. Por cuestiones de comodidad, estoy usando salidas <?=$variable?> para indicar los valores dinámicos de las variables en una página larga. Esto me genera un código ...
  #1 (permalink)  
Antiguo 07/01/2003, 05:43
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Duda sobre "buenas maneras"

Por cuestiones de comodidad, estoy usando salidas <?=$variable?> para indicar los valores dinámicos de las variables en una página larga.

Esto me genera un código de este tipo:

Código PHP:
<table>
<tr>
<td><?=$celda1?></td>
<td><?=$celda2?></td>
</tr>
<tr>
<td><?=$celda3?></td>
<td><?=$celda4?></td>
</tr>
</table>
(en realidad es más larga y tiene más cosas)

Yo me pregunto, a nivel PHP, ¿Qué es lo mejor? ¿Usar <?=$variable?> o contener toda la página entre <? y ?>, y sacar todo el HTML mediante echo()?

Yo no he notado ninguna disminución de la velocidad, pero claro, no lo he calculado con mucha precisión tampoco.
__________________
M a l d i t o F r i k i
  #2 (permalink)  
Antiguo 07/01/2003, 06:31
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
dejame decirte que yo ocupo todo dentro de php, osea no incluyo php dentro de html sino que escribo todo como php,

y nunca he pensado si es la mejor manera o la peor, solo es mi estilo de trabajo, pero si alguien sabe si el proceso es mas lento o es normal la forma de utilizacion tambien me encantaria saber al igual que Cain
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #3 (permalink)  
Antiguo 07/01/2003, 06:46
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
A ver

Saludos.

La verdad es que todo queda resumido a tu facilidad de trabajo.

Cuando colocas todo dentro de los tags de PHP <? ?>, el código HTML se ve ajustado en lo siguiente: Cuando requieras colocar dobles comillas, comillas simples o caracteres especiales, tendras que utilizar simbolos extras para especificarle al PHP que esos son caracteres de HTML.

Esto no ocurre si dejas el HTML fuera del PHP.

Claro, en ocasiones es muco mejor dejar el HTML dentro del PHP, pero son en los casos donde por ejemplo, traes consultas de una DB y requieres ir imprimiendo los campos repetidamente en celdas distintas de una tabla.

EJ:

<?
for (a=0; a=50; a++){
echo "<tr><td>" . $row[campoA] . "</td></tr>";
}
?>

pero que pasa cuando tienes por ejemplo que indicar el ancho de la celda??

Ej:

<?
for (a=0; a=50; a++){
echo "<tr><td widnth=\"20\">" . $row[campoA] . "</td></tr>";
}
?>

Como veras he tenido que incorporar el caracter \ para explicar de las dobles comillas que siguen son para imprimirlas.

Es un ejemplo tonto, pero imagina que en ves del tamaño de la celda, requieras colcoar una función javascript, que además de dobles comillas seguro llevara comillas simples.

Por eso yo prefiro usar en casos particulares...

EJ:

<?
for (a=0; a=50; a++){
?>
<tr><td><? $row[campoA] ?></td></tr>
<?
}
?>

Espero te sirva de algo mi idea.

Suerte.
__________________
Aprender Siempre. Lema de Vida

José Molina
  #4 (permalink)  
Antiguo 07/01/2003, 06:52
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Exacto, yo suelo usar el sistema de joseisrael. Usar PHP para procesar datos y mostrar cosas cortitas y HTML para mostrar cosas largas.

Ahora faltaría tener datos fehacientes sobre si ir abriendo y cerrando <? ?> ralentiza la ejecución de PHP, o si es indiferente.
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 07/01/2003, 07:07
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
por si no me exprese bien, yo no pregunte como manejar php dentro ni fuera, lo que yo ocupo es html dentro de php y no tengo problema pq es asi mi forma de trabajarlo y eso de incluir el \ es para mi una expresion mas y no tengo problemas porque paso a ser parte de mi vocabulario...

ahora la pregunta de Cain es si cual de las 2 maneras es mejor...
y me gustaria saber pero no en cuanto a escritura ni tamaño sino en cuanto a tiempo si es que existe diferencia de ese tipo
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #6 (permalink)  
Antiguo 07/01/2003, 08:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo para el ejemplo que usas de interccaccin variables PHP con código HTML uso:

Código PHP:
echo <<<HTML
<table>
<tr>
<td>$celda1</td>
<td>$celda2</td>
</tr>
<tr>
<td>$celda3</td>
<td>$celda4</td>
</tr>
</table>
HTML; 
Este método (de nombre "técnico"no recuerdo) .. Es el mas "cómodo" para integrar variables (simples o arrays, no objetos ni llamadas a funciones) con HTML.

Igualmente se evalua todo el código por este método buscando PHP $variables que "parsear" (que asignarle su valor).

Tanto el el ejemplo que pusistes como en cualquiera en los que intervenga código PHP que evaluar .. si la página es .php (o cualquier extensión asignada al interprete PHP) PHP es ejecutado (mejor o peor optmizado sengun se usar PHP como módulo o como CGI). (aunque parezca obvio igual lo comento .. ).

Un saludo,
  #7 (permalink)  
Antiguo 07/01/2003, 08:40
Avatar de kamezen  
Fecha de Ingreso: junio-2001
Ubicación: México, D.F.
Mensajes: 128
Antigüedad: 22 años, 10 meses
Puntos: 0
No estoy seguro si alguien sepa o haya calculado el tiempo de proceso de un metodo u otro !!! Sin embargo yo he utilizado los dos y me ha dado los mismos resultados !! Puede que se deba a la maquina que utilizas !!! Pero todo es cuestion de como te acomodes !!

Despues de todo el fin es el que cuenta !! Ademas tengamos en cuenta que utilizamos PHP !!! No es maravilloso ????

__________________
No esperes a que tu Nación haga algo por ti !!! Mejor haz primero algo por tu Nación !!!
México-WEB
  #8 (permalink)  
Antiguo 07/01/2003, 10:38
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
creo que la solucion de Cluster es la mas comoda, pero si no le gusta a alguien y quiere mantener el codigo php que funcione en todas partes el metodo <?=$variable?> me parece que si esta desactivada la forma corta de php, es decir <?php en vez de solo <?, podria dar un problema de incompativilidad, por lo que en ese caso deberia hacerce <?php echo $variable ?>

Saludos
  #9 (permalink)  
Antiguo 07/01/2003, 10:52
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Si de "buenas maneras" es lo que trata el Post, vale aclarar que si bien el PHP permite intercalar código PHP dentro de código HTML ( y viceversa ), esto no es considerado una "buena manera".

La "buena manera" de trabajar realmente, es utilizar Templates y alguna clase que facilite su utilización, de esa manera se logra abstraccion completa entre HTML y PHP, pudiendo alterarse cada uno por separado ( y hasta por personas diferentes ).

Por eso, es recomendable que explores un poco en ese sentido, revisando la documentación de las NokTemplates de Nok, o las Smarty o patTemplates, que son las mejores clases para manejo de Templates que conozco.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #10 (permalink)  
Antiguo 07/01/2003, 11:00
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Webstudio, ¿podrías poner las URL de esos templates?

Gracias
__________________
M a l d i t o F r i k i
  #11 (permalink)  
Antiguo 07/01/2003, 11:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo uso las del amigo Nok:

NokTemplates (estan en castellano y soportan "caché" y bloques anidados en su ultima versión)
http://www.jpw.com.ar/noktemplate/index.html

Las Smarty .. son mas completas (y complejas) .. Incluso tienen su propio psudo-lenguaje de programación (cosa que no me gusta q lo integre un motor de templates bajo mi punto de vista) ..
http://smarty.php.net

Las otras patTemplates: (no las conozco)
Tutorial (por ahí deberá andar el link de su sitio oficial)
http://www.devshed.com/Server_Side/P...te1/page1.html


Ahora, si bien usar un gestor de "templates" (plantillas) como estos es una práctica de "buenas maneras" .. No lo es tanto en cuanto a rendimiento .. pese que la mayoria usan algun sistema de "caché" de páginas "renderizadas" (generadas) anteriormente.

Un saludo,
  #12 (permalink)  
Antiguo 07/01/2003, 11:42
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Ok, gracias

Les echaré un ojo, pero si van lentas no creo que las adopte

Ya veremos como sale el experimento
__________________
M a l d i t o F r i k i
  #13 (permalink)  
Antiguo 07/01/2003, 11:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tampoco es tanta la diferencia .. y mas si manejas bien el tema de gestión de caché de paginas que todos estos motores de gestion de templates incluyen ...

Usar un motor de templates a veces es mas lento de "programar" y en otras incluso mas "enrredado" .. Pero ahora te toca poner a ti en una balanza:

¿Quiero hacer una aplicación que el diseño sea muyyy facil de cambiar o que trabaje "en paralelo" un diseñador gráfico (con conocimiento de HTML solo) para hacer el aspecto grafico de la web?

ó

Solo voy hacer una web con diseño fijo q no va a cambiar .. lo hago yo todo (diseño y programación) ...

Yo suelo emplear "templates" para la web "cliente" (la cara visible de la web al usuario/visita) .. y programación clásica para los paneles de administración en los q el diseño no es lo primordial.

Aunque es como todo .. conforme uses un "motor de templates" .. mas te acostumbras .. Yo mismo cada dia los uso más.

Un saludo,
  #14 (permalink)  
Antiguo 07/01/2003, 13:32
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
encuentro que el manejador de tempaltes de Nok son muy buenas, a mi me gustan mucho, lo unico que nunca pude hacer fue tener programadas funciones he incluirlas para que muestren con el manejador de templates, ni tampoco includes, por ello me vi obligado a programar mi prpio manejador de templates que si se puede, pasar tanto texto puro como variables, funciones e incluso includes, aunuqe claro, no es tan prefecto como el de Nok y a de ser mas lento, porque no se como manejar eso del cache que hacen en las templates aun, pero era eso, o simplemente dejar los templates de lado. Por eso, finaloemnte eres tu el que debe decidir.

Saludos
  #15 (permalink)  
Antiguo 07/01/2003, 15:45
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Una apreciación.

Palabras extraidas del manual oficial de PHP: "Debe deshabilitar el formato corto si desea usar PHP con XML."

Con el formato corto deshabilitado, la única etiqueta de código de PHP es <?php ?>.

Ea, ahí queda eso.

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
  #16 (permalink)  
Antiguo 07/01/2003, 20:51
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 21 años, 5 meses
Puntos: 0
templates!!
  #17 (permalink)  
Antiguo 08/01/2003, 07:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Mensaje Original por chalito
encuentro que el manejador de tempaltes de Nok son muy buenas, a mi me gustan mucho, lo unico que nunca pude hacer fue tener programadas funciones he incluirlas para que muestren con el manejador de templates, ni tampoco includes, .....
Yo no tengo ningun problema en usar funciones includes y demas logica comun a la hora de usar las NokTemplates ..

Ten en cuenta que NokTemplates no es mas que un objeto (classe) .. lo que tienes que hacer si usas funciones es pasarle como parámetro la instancia del objeto que has creado y devolver su resultado al mismo ..

Yo lo hago sencillamente definiendo la instancia como global y listo .. (igual no es el mejor metodo).

Código PHP:
function cosa(){
GLOBAL 
$html//defino el objeto como global

$html->cargar('tCosa','cosa.htm');
   
$html->asignar('COSA_DATO',$cesta);
   
$html->expandir('BLOQUE_1','tCosa');
}

$html = new NokTemplate('plantillas/plantilla1');
cosa(); //hago la llamada a la función .. 
Y con un include ..

Código PHP:
$html = new NokTemplate('plantillas/plantilla1'); // antes de hacer tu "include" instancias el objeto
// o metes la instancia de ese objeto en el mismo include()
include("losqusea_q_usa_templates.php"); 
Un saludo,

Última edición por Cluster; 08/01/2003 a las 07:17
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:44.