New question

Question:

Date: 22-08-2018 16:21:33 (In Spanish)

Plantillas Web con PHP (cabecera, cuerpo, pie de página)[Resolved]

Hola buenas noches tengo una duda sobre cómo crear plantillas Web. Estuve viendo en dividir la web en partes en archivos diferentes. Ejemplo la cabecera, el cuerpo, el pie de pagina para luego incluir los archivos con include. Esta práctica es recomendada? Si bien se ve practico para trabajar y modificar no sé si es una Buen práctica. Aguardo las sugerencias o cómo lo hace cada unos de los profesionales que están en el foro.
Gracias
Tags: Best Practices - PHP - Suggestion - Templates - Web Votes: 0 - Answers: 8 - Views: 25 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 22-08-2018 18:40:09 Hola, a mi me gusta mucho usar Twig para el tema de templates, en internet encontraras muchos tutoriales de como utilizarlo.

    https://twig.symfony.com/
      Votes: 1 - Link answer
     
  • Date: 23-08-2018 01:23:21 Hola Sebastian,

    Sí claro que es buena práctica, una página se hace a base de plantillas, pero lo mejor es que encapsules los includes en una función y que las plantillas puedan recibir datos.

    Algo así:

    anadirPlantilla( 'idPlantilla', $datos );
    
    function anadirPlantilla ( $idPlantilla, $datos ) {
      // El array $datos estará disponible en la plantilla
      require ( $idPlantilla.'.php' );
    }
    


    Se puede mejorar con extract($datos), lo cual convierte el array a variables; y con ob_get_contents(), lo cual te permitiría añadir la opción de que anadirPlantilla() imprima directamente o devuelva el código html resultante. Así funcionan los frameworks Yii y creo que también CodeIgniter.

    Espero te sirva.
      Votes: 1 - Link answer
     
  • Date: 23-08-2018 11:33:48 En el caso de laravel, que trae blade, uso una plantilla master.blade.php, para el html básico y cargar assets genéricos, si el cuerpo tiene un layout especial uso un page.blade.php que hereda master.blade.php. Y el resto de plantillas heredan mi page.blade.php   Votes: 1 - Link answer
     
  • Date: 23-08-2018 13:47:48 utiliza em patron de diseno MVC para tu aplicacion y listo nada complicado.   Votes: 0 - Link answer
     
  • Date: 24-08-2018 14:19:56 Hola Gracias a todos por responder, ya con las respuestas me tome estos días para mirar un poco por internet y poner en práctica. Pude leer en algunos artículos que al usar include solo no es tan seguro puede ser?. y otra duda es al trabajar con paginas con variables de session normalmente se coloca al principio del archivo.php, en este caso se pondría en el archivo cabecera.php? o en el archivo.php que estoy visualizando colocando en el cuerpo si es el editable. Saludos y gracias   Votes: 0 - Link answer
     
  • Date: 25-08-2018 05:36:16 Te respondo más extensamente dado que ayer no pude.

    Para iniciar sesión: @ session_start().

    La @ evita el error de que ya esté iniciada. Pero en todo caso debe ir al principio del script, controlador o función que inicia la aplicación.

    MVC: Si no usas un framework, quiere decir que por una parte debes crear el archivo principal de la página (index.php, contactar.php, etc), que haría el papel de controlador, y por otra parte crear las vistas o plantillas parciales.

    El controlador se encarga de realizar operaciones y al final mostrar las vistas/plantillas con las variables que le envía.

    Por ejemplo contactar.php debe iniciar la sesión, comprobar si se ha enviado un formulario y validarlo, o hacer una consulta a la BD, todo este código debe estar en el controlador, nunca en la vista o plantilla, e igualmente el controlador tiene prohibido mostrar html, esto es tarea de las vistas.

    Por su parte include es tan seguro o inseguro como el código que le pongas. Al usar una función mostrar_plantilla() lo que haces es encapsularlo y tener mayor control sobre las variables que reciben las plantillas, pues ya sabes que en un include están disponibles todas las variables del script principal.

    No obstante todos estos archivos de plantillas o funciones de la aplicación debes organizarlos en carpetas que no sean accesibles públicamente, y esto lo puedes hacer con código php o con el archivo .htaccess con deny from all.

    Salud.
      Votes: 0 - Link answer
     
  • Date: 27-08-2018 04:55:01 Las funciones PHP que envían o modifican las cabeceras HTTP se deben ejecutar antes de que se haya empezado a enviar la página solicitada al usuario, por lo que es importante que session_start() sea la primera instrucción que aparezca en tu página web (no la primera de un script sino la primera de la página como un todo). Si hay algo antes de esta instrucción se produce el error siguiente:
    Warning: Cannot modify header information - headers already sent
    (output started at file:line)
    
      Votes: 1 - Link answer
     
  • Date: 31-08-2018 05:41:28 Gracias a todos por la ayuda la verdad que eh aprendido mas de lo esperado. Vuelvo agradecer a esta comunidad. Les mando un abrazo.   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In