Foros del Web » Programando para Internet » PHP »

Evitar mezclar php con html

Estas en el tema de Evitar mezclar php con html en el foro de PHP en Foros del Web. La idea es no mezclar php con html, he oido hablar de smarty pero creo que es unicamente para orientacion a objetos, estoy trabajando estructurado, ...
  #1 (permalink)  
Antiguo 07/08/2008, 17:52
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 16 años, 11 meses
Puntos: 1
Busqueda Evitar mezclar php con html

La idea es no mezclar php con html, he oido hablar de smarty pero creo que es unicamente para orientacion a objetos, estoy trabajando estructurado, y ademas es como que tengo que aprender un pseudo lenguaje y no me gusta mucho la idea. Lo ideal seria una solucion en la que no deba usar ninguna herramienta como smarty, es decir, no tener que aprender un pseudo lenguaje.

Lo que se me ocurre que puedo llegar a hacer es definir funciones en php que muestren html. Por ejemplo:

Si quiero hacer un formulario, haria lo siguiente:

Cita:
crearForm('form1', 'index.php');
otras funciones de php para incluir elementos del formulario
cerrarForm();

function crearForm($param1,$param2) {
$var1 = "<form";
$var2 = " name=" . $param1;
$var3 = " action=" . $param2;
$var4 = ">";
$var = $var1 . $var2 . $var3 . $var4;
echo $var
}
function cerrarForm() {
echo '</form>';
}
El tema es que me parece que no es muy performante por el codigo que debe interpretar, pero no se me ocurre otra forma. Si alguien pudiera ayudarme, estaria muy agradecido.

Muchas gracias
  #2 (permalink)  
Antiguo 07/08/2008, 18:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Evitar mezclar php con html

Hola cobolero_poseido,

No es necesario que todo sea orientado a objetos para usar Smarty. De la forma que lo estas haciendo seria lo mas correcto por el momento para que vayas haciendo templates y separando el código de la parte de PHP.

Saludos.
  #3 (permalink)  
Antiguo 07/08/2008, 18:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Evitar mezclar php con html

Smarty es una clase... si bien para trabajar con ella sí necesitas al menos un objeto (una instancia de Smarty) puedes ocuparlo en tu programación estructurada sin problema teniendo cuidado de su referencia. Lo mismo que dice Gator, Smarty no es "solo para OO". Igual tomarse un tiempo para trabajar con ella no sería una pérdida de tiempo, es prácticamente un estándar.

Ahora, no sé si recomedaría hacer esta combinación de un objeto con funciones. Como sea, siguiendo con tu idea, tampoco sugeriría hacer una función por elemento del formulario, crea plantillas más grandes, como todo el formulario y podrías pasar un arreglo para hacer las sustituciones. A muy grandes rasgos, algo como:
Código PHP:
<?php
// Tu plantilla
function creaForm($params)
{
    
$form = <<<HTML
        <form action="{$params['action']}" method="{$params['method']}"/>
            <input type="text" name="nombre" value="
{$params['nombre']}" />
            <input type="submit" value="Enviar" />
        </form>
HTML;
        return 
$form;
}

// Entonces "seteas" los valores necesarios
$params['action'] = $_SERVER['PHP_SELF'];
$params['method'] = 'post';

if(!empty(
$_POST)) {
    
$params['nombre'] = $_POST['nombre'];
}

// Parseas e imprimes
echo creaForm($params);
Debería ser funcional. De esta manera tendrías un mejor manejo de los valores pasados a la función, cambiando la idea de variables, como ahora lo planteas, a un arreglo y te ahorrarás dolores de cabeza (ve como el value del texbox es "opcional").

Yendo un paso más allá, ya que decidiste separar el HTML (bien), podrías hacer una implementeación del modelo MVC (Modelo-Vista-Controlador) solo con funciones. Lee este artículo nombrado aquí en el foro: http://jacobo.tarrio.org/ex/txt/mvc.html

Y la invitación a no temerlo a los objetos, esto te debería servir como entrada.

Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 07/08/2008, 22:13
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Evitar mezclar php con html

Debes aplicar el método de trabajo MVC. TinyButStrong, Smarty, son clases que te permiten separar el diseño de la parte logica
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
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




La zona horaria es GMT -6. Ahora son las 15:09.