miércoles, 17 de septiembre de 2014

PHP (03) Funciones (07) Includes, desarrollo de una web a partir de funciones

PHP permite crear archivos de inclusión, es decir incluidos en en nuestro archivo principal y de ese modo tener acceso a las funciones que se encuentran en los archivos incluidos de forma simple y sencilla, de la siguiente forma:
<?php
 include ('funciones.php');
 ... 

Con funciones se planean mejor nuestras webs

De este modo estamos introduciendo el archivo funciones dentro de nuestro archivo y sus funciones están totalmente accesibles.

Naturalmente esto puede tener muchas utilidades y limpian mucho el código, pudiendo utilizarse como las clases de java, siendo mucho más claras nuestras funcionalidades, como por ejemplo tener un archivo php que cree tenga una función que cree tablas (tablas.php) a través de argumentos, que hagan operaciones aritméticas...

Pero hay algo dentro del desarrollo web, que desde ya va a ser uno de nuestros objetivos como iréis viendo, donde esto puede mostrar su mayor potencia. Por ejemplo, cuando hacemos una web con HTML y vamos a añadir un elemento a nuestra barra de navegación siempre tenemos que ir introduciéndolo archivo tras archivo para que los cambios se vean en todas las páginas. Pero con las funciones solo hace falta modificar la función donde se encuentra nuestra barra de navegación que es la que leen todas nuestras páginas.


Esto que parece muy complejo es realmente sencillo. Para ello os invito a que descarguéis el ejemplo que he puesto en un repositorio de github, haciendo click en el pulpogato.
https://github.com/mialto/Web-con-funciones-PHP

Una vez lo descarguéis debéis de introducirlo en vuestro servidor local, ya sabéis que de lo contrario no podréis ejecutar PHP.

Si os fijáis, el index de esta web es .php y no .html, eso indica que es un archivo php y cuando lo abrimos vemos el siguiente código:
<?php
 include ('funciones.php');
 head();
 cabecera();
 navegador();
 cuerpo();
 aside();
 espacio();
 pie();
?>

El cual en principio no tiene absolutamente nada, pero vemos como tiene dentro un include que hace referencia al archivo funciones.php que es donde esta la chicha.
<?php
 function head()
 {
  ?>
  <html>
  <head>
   <title>Web con funciones</title>
   <link rel="stylesheet" type="text/css" href="css/estilo.css"/>
  </head>
  <body>
  <?php 
 }

 function cabecera()
 {
  ?>
  <header>
   <h1>Título de la página</h1>
  </header>
  <?php
 }

 function navegador()
 {
  ?>
  <nav>
   <ul>
    <li><a href="">Home</a></li>
    <li><a href="">Sección 1</a></li>
    <li><a href="">Sección 2</a></li>
    <li><a href="">Seccion 3</a></li>
    <li><a href="">Seccion 4</a></li>
   </ul>
  </nav>
  <?php
 }

 function cuerpo()
 {
  ?>
  <main>
   <section>
   <article>
    <h2>Articulo 1</h2>
    <img src="img/web-3.jpg" align="left" height="200" width="200"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto non sequi in, praesentium, inventore dolore beatae natus, numquam possimus iste voluptate debitis porro nihil obcaecati odio ipsam ratione eveniet? Placeat.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus quibusdam temporibus odit, similique unde eos blanditiis. Maxime sit praesentium fugit iusto ipsum eum nostrum, obcaecati est quo, iure molestias placeat!</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus quibusdam temporibus odit, similique unde eos blanditiis. Maxime sit praesentium fugit iusto ipsum eum nostrum, obcaecati est quo, iure molestias placeat!</p>
   </article>
   <article>
    <h2>Articulo 2</h2>
    <img src="img/web-3.jpg" align="left" height="200" width="200"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto non sequi in, praesentium, inventore dolore beatae natus, numquam possimus iste voluptate debitis porro nihil obcaecati odio ipsam ratione eveniet? Placeat.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus quibusdam temporibus odit, similique unde eos blanditiis. Maxime sit praesentium fugit iusto ipsum eum nostrum, obcaecati est quo, iure molestias placeat!</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus quibusdam temporibus odit, similique unde eos blanditiis. Maxime sit praesentium fugit iusto ipsum eum nostrum, obcaecati est quo, iure molestias placeat!</p>
   </article>
   </section>
  
  
  <?php
 }

 function aside()
 {
  ?>
   <aside>
    <h3>Barra lateral</h3>
    <p>Aquí se pueden introducir los widgets que queramos, desde twitter a publicidad, pasando por imagenes, contadores de visitas...</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda sapiente voluptas est hic ducimus cumque soluta, nisi possimus itaque quam iusto quod nulla recusandae. Magnam aperiam quod ratione iusto molestias.</p>
   </aside>
  </main>
  <?php
 }

 function espacio()
 {
  ?>
  <div id="espacio"></div>
  <?php
 }

 function pie()
 {
  ?>
  <footer>
   <h4>Plantilla desarrollada por medio de funciones PHP con Includes</h4>
   <h4>Por Miguel Ángel López Torralba</h4>
  </footer>
  <?php
 }
?>

Aquí vemos las funciones definidas y como las recogen, de modo que si quisiéramos hacer nuevas páginas solo habría que enlazarlas a la función navegador de la siguiente forma:
function navegador()
{
 ?>
 <nav>
  <ul>
   <li><a href="index.php">Home</a></li>
   <li><a href="sobre.php">Sobre nosotros</a></li>
   <li><a href="">Sección 2</a></li>
   <li><a href="">Seccion 3</a></li>
   <li><a href="">Seccion 4</a></li>
  </ul>
 </nav>
 <?php
}

Y hacer nuestro archivo sobre que sería algo así:
<?php
 include ('funciones.php');
 head();
 cabecera();
 navegador();
 sobre();
 aside();
 espacio();
 pie();
?>

Como vemos nuestro archivo sobre.php tiene incluido el mismo archivo funciones de donde bebe las partes comunes, y lo único que cambia es la función sobre() que había que definirla en funciones.php con el contenido que queremos.

La web (muy simple) de ejemplo que vaís a ver cuando descarguéis el repositorio es la que veis en la imagen, pero os puede servir de ejemplo para empezar a trabajar.


De este modo el trabajo y el mantenimiento de las webs es mucho más simple y rápido que utilizando los archivos .html directamente.

Os animo que a lo vayáis probando, y hagáis alguna web de esta forma veréis que tan solo a medio plazo iréis mucho mas rápido y ya en el corto el código total que escribis es mucho más corto.

"Medir los avances de un programa utilizando como base el número de líneas de código es como medir el avance en la construcción de un avión por el peso"
Bill Gates

No hay comentarios:

Publicar un comentario