2010-11-09 15 views
5

No tengo idea si hay un término técnico para esto, así que no encontré nada en google ni en este sitio.Contenido dividido de php en varios archivos

Un amigo mío que ha estado haciendo sitios durante años, y que en realidad creó un negocio, usa un sistema bastante único (para mí).

Él divide su página en 3 partes, el encabezado, el cuerpo y el pie de página. los pone en 3 archivos, y luego incluye el encabezado y pie de página de las páginas centrales, dejando sólo esto: (ejemplo)

<?php include_once "Constants/Header.php"; ?> 

     <div id="Container"> 
      <div id="Header"> 
       HEADER 
      </div> 

      <div id="Menu"> 
       <ul id="Nav"> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
       </ul> 
      </div> 

      <div id="Body"> 

      </div> 
     </div> 

<?php include_once "Constants/Footer.php"; ?> 

¿Es una buena práctica para codificar un sitio de esta manera? -si es así, ¿por qué? Y por último pero no menos importante, ¿codifica sus páginas de esta manera?

+0

Algo en la línea de la estandarización de páginas. Tengo una pregunta similar, preguntándome si hay algún efecto secundario negativo en este proceso, por ejemplo, si header.php contiene la etiqueta , y footer.php contiene la etiqueta. –

Respuesta

4

Como han mencionado otros, dividir tu código en varios archivos PHP puede ayudarte a evitar duplicar tu trabajo innecesariamente. Sin embargo, un beneficio aún mayor que puede caerse de esto es que la declaración include es la puerta de entrada a la implementación de la implementación de una arquitectura en todo el sitio, como Model-View-Controller.
Usando MVC, su código se divide no solo en términos de partes de la página que el usuario ve (encabezado, pie de página, cuerpo, etc.), sino también en términos de responsabilidad. En un nivel alto, el "Modelo" maneja la lógica de datos y negocios, la "Vista" maneja la interfaz del usuario (incluyendo la representación de datos del modelo) y el "Controlador" maneja las solicitudes e interactúa con las partes apropiadas del Modelo.
No soy un experto en MVC de ninguna manera, pero los beneficios aquí son enormes. Cada uno de los componentes puede probarse individualmente. Diseñar los componentes para que estén "flojos" lo ayuda a evitar repetirlo y lo alienta a escribir código reutilizable. Hay un número de PHP web application frameworks que utilizan arquitectura MVC, muchos de los cuales están disponibles de forma gratuita (por ejemplo, CodeIgniter).
Es cierto que MVC no es necesariamente la "única forma verdadera": en el caso de su amigo, implementar una arquitectura como esta puede estar fuera del alcance de lo que quiere hacer. Pero en lo que respecta a su pregunta original (en una especie de rotonda, supongo), la declaración include puede (cuando se usa correctamente) ser una herramienta muy poderosa y útil.

+0

Gracias, estaba a punto de elegir otro comentario como respuesta. Pero este parece más completo, lo siento. Gracias por el enlace, y la respuesta por supuesto. – Nick

3

Es extremadamente útil (para usted como desarrollador y su sucesor) utilizar include y dividir sus archivos PHP. De esta forma, si necesita cambiar el pie de página, por ejemplo, solo tiene que cambiar el archivo de un pie de página, y los cambios se reflejan en todo el sitio.

Y sí, siempre uso include.

+0

Creo que sería un desperdicio si hiciera un tema nuevo para esto, así que a menos que pienses lo contrario, ¿te importaría si te preguntara por qué utilizarías incluir en este código? Investigué un poco y, dejando a un lado el pequeño aumento de la carga del servidor, me pareció la mejor opción. – Nick

2

No conozco las buenas prácticas, pero si su sitio utiliza el mismo encabezado y pie de página en todas las páginas, es mucho más eficiente incluir el código una vez en lugar de copiar y pegar el mismo código en cada página .

Las adiciones futuras a su menú deben agregarse solo una vez y cada página ve el cambio.

1

Bueno, esa es una técnica bastante básica en PHP. Le permite modificar el encabezado o el pie de página en un lugar y modificarlo en todas las páginas del sitio que los usa.

Se puede utilizar para más propósitos que eso.

1

No es bueno ni malo.

Depende de lo que quieras hacer. Si desea un conjunto de páginas web simples y posibles, es lo suficientemente bueno. Los problemas comienzan a aparecer cuando desea una hoja de estilos separada para cada página.Luego, algunas páginas usan un script, otras incluyen otro script. En estos casos, los encabezados diferirán de una página a otra (PUEDEN ser los mismos, pero es una mala práctica incluir archivos que no está usando).

Luego, si está creando algún tipo de interacción en el sitio, esto simplemente no funcionará. No es una forma de programar. No hay espacio para el código PHP real. Por supuesto, puede incluir código PHP, pero es una práctica extremadamente mala mezclar PHP y HTML de esta manera.

La mejor manera de que PHP funcione para usted en este caso es utilizar algún tipo de marco o CMS. Si desea construir un sitio web con páginas con poca interacción (como un sitio web para una empresa, algunas presentaciones, sitio de noticias, blog), use un CMS, como Wordpress, Joomla, Drupal, DLE. Si necesita algo más complicado, como una aplicación web basada en PHP, use frameworks MVC, vaya a Zend framework, o algo más fácil y más pequeño (aquí estoy siendo extremadamente subjetivo) como CakePHP, CodeIgniter o Symfony.

2

No es bueno, pero es una práctica común. Un poco mejor sería 3 archivos, uno para el encabezado, uno para el pie de página y luego uno (típicamente: index.php) que incluye el encabezado, el pie de página y el contenido.

<?php 
$active_page = $_GET['page']; 
require_once('header.php'); 
require_once($active_page); 
require_once('footer.php'); 
?> 
+0

http://mysite.com/index.php?page=index.php – AlexanderMP

+0

+1 para recordarme que haga que el contenido sea dinámico. – Nick

Cuestiones relacionadas