Академический Документы
Профессиональный Документы
Культура Документы
Introducción a la
programación web
utilizando PHP
1. Introducción a la
programación web
utilizando PHP
1.1 Introducción a la programación
web
En esta primera lectura haremos una introducción general a las cuestiones
relacionadas al desarrollo para entornos web. Para comenzar, repasaremos
conceptos como la arquitectura cliente – servidor y la estructura del
HTML5 junto a sus otros dos pilares: CSS y JavaScript.
Cabe aclarar que los conceptos y las herramientas que serán desarrollados
en esta primera instancia se presentarán de manera sintética, por lo cual
deberán ser estudiados complementariamente con los tomos de
bibliografía básica establecidos para el cursado de esta materia.
1
1.1.1 “Cliente – servidor”
En este apartado presentaremos la arquitectura cliente – servidor, ya que
el desarrollo web se basa, principalmente, en este modelo de aplicación.
Esta separación entre cliente y servidor implica una separación del tipo
lógica, ya que el servidor no se ejecuta indefectiblemente sobre una única
computadora, ni es un sólo aplicativo. Entre los tipos de servidores que
puedes encontrar podemos nombrar los servidores web (los que
ahondaremos en este curso), de bases de datos, de archivos, correo
electrónico, entre otros. Entonces, por ejemplo, un servidor web “sirve”
páginas web, mientras que un servidor de archivos “sirve” archivos de
computadora. Si una computadora es cliente, servidor o ambas a la vez, se
determina por la naturaleza de la aplicación que se ejecuta. Como veremos
más adelante, en una PC de escritorio instalaremos un servidor web para
poder procesar y visualizar páginas web.
2
Desde el punto de vista funcional, se puede definir a la arquitectura cliente
- servidor como una arquitectura distribuida que permite a los diferentes
usuarios acceder a la información de manera transparente (Renaud, 1993).
Características generales
3
Principales ventajas
Desventajas:
4
cual puede llegar a dificultar el diagnóstico de problemas y la
capacitación del personal a cargo.
Es relevante que los clientes y los servidores empleen el mismo
mecanismo (sockets o RPC). Esto significa que se debe contar con
mecanismos generales presentes en distintas plataformas.
Probablemente, el mayor desafío sea la sincronización entre
sistemas a nivel de configuración inicial.
La seguridad entre las comunicaciones cliente – servidor es un
punto a considerar, ya que si bien no se puede considerar como una
desventaja en sí misma, sí representa un ítem a resolver y
garantizar que, quizás, en arquitecturas centralizadas se maneja de
manera más sencilla.
El nivel de performance es otro aspecto que se debe tener en
cuenta en el esquema cliente - servidor. La congestión en la red o la
dificultad en el tráfico de datos, por citar algunos ejemplos, pueden
representarnos grandes problemas en este tipo de arquitectura.
Por último, lograr la consistencia en los datos entre diferentes
servidores de base de datos también es una tarea que exige un
esfuerzo extra a la hora de la configuración inicial y el
mantenimiento periódico.
HTML y CSS son la base del funcionamiento de casi todos los sitios web que
visitamos a diario. Cuando visitas un sitio mediante un navegador web, el
engranaje que se activa por detrás para permitir que el sitio web se
muestre es más complejo. La computadora se basa en lo que se indica en
HTML y CSS para saber lo que tiene que mostrar y cómo mostrarlo
(disposición de los elementos que componen la página en la pantalla, por
ejemplo).
5
Imagen 3: Ejemplo de código HTML de un sitio web
HTML y CSS son dos lenguajes básicos que necesitamos conocer para poder
desarrollar sitios web. Es el navegador web el que realizará la traducción (la
interpretación) entre los lenguajes de programación y lo que finalmente se
ve en la pantalla de la computadora de un cliente.
En este sentido, cabe aclarar que para crear un sitio web tienes que dar
instrucciones a la computadora (al navegador que está interpretando el
código). Es decir, no basta con escribir el texto que se ha incluido en el sitio
(como lo harías con un procesador de textos, por ejemplo), sino que,
además, debes indicar dónde colocar este texto, cómo se comportará en la
pantalla, dónde insertar imágenes, crear hipervínculos o enlaces entre
diferentes páginas y varias consideraciones más en las que ahondaremos
en apartados posteriores, cuando analicemos lo que se conoce como los
atributos de los componentes.
6
HTML (Hyper Text Markup Language): apareció por primera
vez en el año 1991, con el lanzamiento de la Web. Su función
es la gestión y organización del contenido (…) En HTML
puedes escribir lo que deseas mostrar en la página: texto,
enlaces, imágenes, [entre otros].
7
(HTML 1.0) no contaba con la posibilidad de mostrar imágenes. Detallamos,
a continuación, su evolución a lo largo de las distintas versiones:
8
HTML 5 (HyperText Markup Language, versión 5) es la quinta
revisión importante del lenguaje básico de la World Wide
Web, HTML.
HTML 5 especifica dos variantes de sintaxis para HTML: un
«clásico» HTML (text/html), la variante conocida como
HTML5 y una variante XHTML conocida como sintaxis
XHTML5 que deberá ser servida como XML (XHTML)
(application/xhtml+xml).
Esta es la primera vez que HTML y XHTML se han
desarrollado en paralelo.
(Diaz Sanz, 2011, p. 19, http://goo.gl/MivfJ9).
9
utiliza un bloc de notas (o similares en otros sistemas operativos diferentes
a Windows) para dicha tarea.
Los editores del tipo WYSIWYG (es el acrónimo de “What You See Is
What You Get” – en español: “lo que ves es lo que obtienes”), que
se basan en elementos visuales que disponemos acomodando en la
pantalla sin escribir una sola línea de código, y el programa nos
genera el código HTML/CSS necesario. Podemos nombrar algunos
de los editores más conocidos como Adobe Dreamweaver, Amaya,
NVU, Kompozer, Bluefish, WYSIWYG Web Builder, iWeb, entre
otros.
Los navegadores
Tal como mencionamos anteriormente, los navegadores que utilizamos no
siempre muestran las páginas web de la misma manera. Esto depende de
las versiones que vayan incorporando los intérpretes del código HTML y
CSS para ir adecuándose a los estándares. Además, muchas computadoras
o dispositivos móviles tienen diferentes versiones de un determinado
navegador, coexistiendo versiones desactualizadas con las más recientes,
lo que, en cierta forma, dificulta poder visualizar de manera uniforme un
sitio web en múltiples dispositivos. Si los usuarios no actualizan el software,
esta situación se convierte en un problema para los creadores de sitios
web. Generalmente, entre Firefox y Chrome existe una gran aceptación e
interpretación del código, mientras que Internet Explorer suele tardar más
en implementarlo.
10
Imagen 4: Captura de pantalla de caniuse.com
Desglosando HTML5
Los documentos HTML están rigurosamente organizados. Cada parte del
documento está distinguida, declarada y determinada por etiquetas
específicas, que van representadas entre los signos < y >. Así luce una
estructura básica:
<!DOCTYPEhtml>
<htmllang="es">
<head>
<meta charset="utf-8" />
<title>Holamundo! Este es el titulo</title>
</head>
<body>
Contenido...
</body>
</html>
11
Primero, comenzamos con el DOCTYPE, el cual es muy sencillo de escribir y
ha sido recortado. Continuamos con la etiqueta HTML, que tiene el atributo
lang, el cual especifica el idioma del sitio. Esta línea de DOCTYPE se ubica
en la línea inicial del archivo, sin espacios o líneas anteriores. De esta
manera, el modo estándar del navegador es activado y las incorporaciones
de HTML5 son interpretadas siempre que sea posible o, en caso contrario,
ignoradas. La etiqueta <html> se cierra al final de todo el documento. Una
etiqueta se cierra cuando especificamos con una barra, como vemos en el
título abre <title> y cierra </title>, que incluye una barra en el mismo
identificador de la etiqueta. O también lo encontramos en <html>, y
cuando cierra: </html>.
<head>
<meta charset="utf-8" />
<title>Holamundo! Este es el titulo</title>
</head>
12
utilizan para indexar la página), archivos externos con estilos CSS, códigos
de Javascript, entre otras cosas. Excepto por el título y algunos íconos, el
resto de la información que se coloca en la cabecera es invisible para el
usuario.
<meta charset="iso-8859-1">
<metaname=”description” content=”Ejemplo de Etiqueta con
descripción”>
<meta name=”keywords” content=”HTML5, CSS3, Desarrollo web”>
13
archivo que estamos incorporando por medio de href. En este caso, el
atributo rel tiene el valor stylesheet que le “informa” al navegador que el
archivo estilos_generales.css es un archivo CSS con estilos requeridos para
la presentación de la página en pantalla. El archivo de estilos (CSS) contiene
un grupo de reglas de formato que ayudará a cambiar la apariencia de la
página web (por ejemplo, el tamaño y color del texto), tal como lo veremos
más adelante. Profundizar el tema con la bibliografía de la materia.
14
nosotros, pero las palabras clave otorgadas a cada uno de ellos nos ayudan
a entender sus funciones. Normalmente una página o aplicación web
está dividida entre varias áreas visuales para mejorar la experiencia del
usuario y facilitar la interactividad. Puede ampliar mayor información
sobre esta temática en la bibliografía básica.
CSS
La nueva especificación de HTML (HTML5) no describe sólo los nuevos
elementos HTML o el lenguaje mismo. La web no sólo demanda
organización estructural o definición de secciones, sino también diseño y
funcionalidad. En este nuevo paradigma, HTML se presenta junto con
CSS y Javascript (que también veremos en esta lectura) como un único
instrumento integrado.
Por otro lado, cabe aclarar que CSS nada tiene que ver con HTML5. CSS no
es parte de la especificación sino que este lenguaje es, de hecho, un
complemento desarrollado para superar las limitaciones y reducir la
complejidad de HTML. Al comienzo, atributos dentro de las etiquetas
HTML proveían estilos esenciales para cada elemento, pero, a medida
que el lenguaje evolucionó, la escritura de códigos se volvió más compleja
y HTML por sí mismo ya no pudo satisfacer las demandas de los
diseñadores. En consecuencia, CSS fue adoptado como la forma de separar
la estructura de la presentación y, desde entonces, ha crecido y ganado
importancia, pero siempre desarrollado en paralelo.
15
Un documento HTML o página; se puede definir la forma, en una
pequeña porción de código en la cabecera, a toda la página.
Una porción del documento, aplicando estilos visibles en una
sección de la página.
Una etiqueta en concreto, llegando incluso a poder definir varios
estilos diferentes para una sola etiqueta. Esto resulta muy
importante ya que ofrece potencia en nuestra programación.
Podemos definir, por ejemplo, varios tipos de párrafos: en rojo, en
azul, con márgenes, sin ellos, entre otros... o, lo que es muy común:
definir cómo se comportan los enlaces o hipervínculos (si están
subrayados o no, si son azules u otro color, entre otros).
16
Elementos inline: son posicionados lado a lado, uno al lado del otro
en la misma línea, sin ningún salto de línea a menos que ya no haya
más espacio horizontal para ubicarlos.
Ahora bien, ¿cómo es esto de los CSS y cómo se complementan con HTML?
¿Dónde van estas reglas en forma de sintaxis? Una de las técnicas más
simples para incorporar estilos CSS a un documento HTML es la de asignar
los estilos dentro de las etiquetas por medio del atributo style. El siguiente
ejemplo contiene el elemento<p> (párrafo en HTML), modificado por el
atributo style con el valor font-size: 20px. Este estilo cambia el tamaño por
defecto del texto dentro del elemento <p> a un nuevo tamaño de 20
pixeles.
<!DOCTYPE html>
<html lang="es">
<head>
<title>Este es el título de la página</title>
</head>
<body>
<p style=”font-size: 20px”>Texto de ejemplo en tamaño 20
pixeles.</p>
</body>
</html>
Usar la técnica del ejemplo anterior es una buena manera de probar estilos
y obtener una vista rápida de sus efectos, pero no es recomendado para
aplicar estilos a todo el documento. La razón es simple: cuando usamos
esta técnica, debemos escribir y repetir cada estilo en cada uno de los
elementos que queremos modificar, incrementando el tamaño del
documento y, además, complicando el mantenimiento del código al repetir
varias veces la misma sintaxis. Imaginemos que en una página, en la que
habíamos utilizado esta técnica para cambiar el tamaño, tuviésemos que
determinarlo en 26px. a todos los párrafos. Tendríamos que modificar
entonces cada etiqueta <p> y reemplazar 20 por 26px.
17
<!DOCTYPE html>
<html lang="es">
<head>
<title>Este texto es el título del documento de prueba</title>
<style>
p { font-size: 20px }
</style>
</head>
<body>
<p>Mitexto</p>
</body>
</html>
18
documento. Para referenciar un elemento en particular usando el
atributo id desde nuestro archivo CSS la regla debe ser declarada con el
símbolo # al frente del valor que usamos para identificar el elemento:
#parrafo_1{ font-size: 20px }
Para trabajar con el atributo class, debemos declarar la regla CSS con un
punto antes del nombre. La ventaja de este método es que insertar el
atributo class con el valor texto1 será suficiente para asignar estos estilos a
cualquier elemento que queramos:
<!DOCTYPE html>
<html lang="es">
<head>
<title>Este texto es el título del documento de
prueba</title>
<link rel="stylesheet" href="estilos_generales.css">
</head>
<body>
<p class=”texto1”>Mi párrafo de prueba</p>
<p class=”texto1”>Mi párrafo de prueba 2</p>
<p>Mi texto</p>
</body>
</html>
Existen otras maneras de referenciar los estilos. Los mismos pueden ser
consultados en los tomos de bibliografía señalados como básicos y
obligatorios para el estudio de los contenidos de la materia.
19
reposicionamiento de los elementos ya presentados en
pantalla, cada posible efecto aplicado previamente
utilizando Javascript fue cubierto. Este nivel de cambio
convierte a CSS3 en una tecnología prácticamente inédita
comparada con versiones anteriores. Cuando la
especificación de HTML5 fue escrita considerando CSS a
cargo del diseño, la mitad de la batalla contra el resto de las
especificaciones propuestas había sido ganada. (Gauchat,
2013, p. 64).
20
alert("Un mensaje de prueba");
</script>
</head>
<body>
<p>Aquí se incluye un párrafo.</p>
</body>
</html>
Archivo código_externo.js
Documento XHTML
21
<script type="text/javascript"
src="/js/código_externo.js"></script>
</head>
<body>
<p>Un párrafo<p>
</body>
</html>
22
No obstante, Eguíluz Pérez (2008) considera que incluir bloques de código
de JavaScript dentro del código XHTML “ensucia” el código y dificulta su
mantenimiento, por lo cual se recomienda usarlo sólo cuando definimos
eventos puntuales en el documento.
Etiqueta <noscript>
Ante la diversidad de navegadores web, un desarrollador debe atender a
sus diferencias a la hora de permitir parcial o total bloqueo del uso de
JavaScript, e incluso a que puedan no darle soporte adecuadamente. Para
considerar este abanico de posibilidades, el desarrollador puede utilizar la
etiqueta <noscript> para mostrar al usuario un mensaje de alerta indicando
que su navegador no está permitiendo la ejecución de JavaScript y que
debe activarlo manualmente para poder apreciar la funcionalidad completa
de la página. Veamos un ejemplo de uso de esta etiqueta:
Sintaxis básica
23
Así como vemos JavaScript, también estudiaremos más adelante las
nociones básicas de PHP (que es bastante similar en su sintaxis).
24
Posibilidades y limitaciones de JavaScript
Luego de dispares momentos de popularidad, desde la aparición de las
aplicaciones AJAX2que están programadas con JavaScript, este lenguaje
está más vigente que nunca dentro del mundo de la programación web.
Un script de ejemplo
A continuación, se muestra un primer script sencillo pero completo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Aquí hay un primer script</title>
<script type="text/javascript">
alert("Mensaje de alerta!");
</script>
2
Significa “Acrónimo de Asynchronous JavaScript And XML” (JavaScriptasíncrono y XML).
Consiste en una técnica de desarrollo web utilizada para crear aplicaciones interactivas
o RIA (Rich Internet Applications).
25
</head>
<body>
<p>Párrafo</p>
</body>
</html>
jQuery
jQuery es una librería gratuita y de código abierto que simplifica la creación
de páginas web altamente interactivas. Se encuentra en un archivo
pequeño al cual podemos acceder enwww.jquery.com y luego incluirse en
nuestros documentos usando la etiqueta <script> (Gauchat, 2012).
26
La búsqueda y manipulación de contenido en una página HTML;
trabajar con el modelo de eventos de los exploradores modernos;
añadir efectos y transiciones sofisticadas que vemos en páginas
modernas, como animaciones disparadas por eventos.
27
programador (¡o incluso con el propio, pasado algún
tiempo!) sabrá lo difícil que es entenderlo y
modificarlo; por tanto, todo lo que sea definir y
estandarizar va a ahorrar tiempo y trabajo a los
desarrollos colaborativos.
- Es más fácil encontrar herramientas (utilidades,
librerías) adaptadas al framework concreto para
facilitar el desarrollo.”
En lo que nos compete a esta materia, veremos que podríamos utilizar, por
un lado, frameworks para HTML5/CSS3 y, por el otro, para PHP y todo lo
que representa la conectividad con la base de datos. Ahora, la gran duda
que se plantea es qué framework elegir o cuál de ellos es el mejor. La
respuesta es que no existe una solución mágica aplicable a todos los
proyectos, sino que la elección del framework vendrá determinada por el
tipo de aplicación a desarrollar, el lenguaje de desarrollo, la tecnología y
posibles requerimientos técnicos extras que se nos presenten. En muchas
ocasiones, entre marcos de trabajo similares puede que elijamos uno u
otro dependiendo también de lo fácil que es aprender a utilizarlo o
implementarlo. A modo de recomendación general, sólo en el caso de que
ninguno de los frameworks se adapte a las necesidades de desarrollo que
28
tenemos, conviene invertir tiempo en desarrollar y definir un marco de
trabajo.
29
Imagen 8: Página web de Kube
TwitterBootstrap
TwitterBootstrap es un framework de tipo libre y de gran popularidad para
diseño de sitios y aplicaciones web. Contiene una serie de herramientas
como plantillas de diseño con tipografía, formularios, menús de navegación
y otras más, todas basadas en HTML y CSS, así como extensiones de
JavaScript opcionales adicionales para realizar las acciones más comunes
en unsitio web de manera sencilla.
30
Imagen 10: Ejemplo de una página web maquetada con TwitterBootstrap
31
Primeros pasos
Para comenzar a trabajar con Bootstrap tenemos diferentes alternativas:
32
<!-- Versión compilada y comprimida del CSS de Bootstrap -->
<link rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap
.min.css">
<link rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap
-theme.min.css">
<script
src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.m
in.js"></script>
33
Contenidos de la versión original de Bootstrap
Si trabajas con la versión original de Bootstrap,verás que ésta incluye las
versiones originales de esos mismos archivos y toda la documentación.
Entonces, una vez que descomprimas el archivo descargado con la versión
original de Bootstrap, verás lo siguiente:
bootstrap/
├── less/
├── js/
├── fonts/
├── dist/
│ ├── css/
│ ├── js/
│ └── fonts/
└── docs/
└── examples/
34
<!-- librerías opcionales que activan el soporte de HTML5
para IE8 -->
<!--[if lt IE 9]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js
"></script>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min
.js"></script>
<![endif]-->
</head>
<body>
<h1>¡Hola mundo!</h1>
6
Para consultar los ejemplos básicos, puedes acceder a http://getbootstrap.com/getting-
started/#examples
35
1.4.1 Capas
La programación por capas es una arquitectura que se compone desde la
división entre la lógica de negocios y la lógica de diseño.
36
La capa estructural
La capa de presentación
La capa de comportamiento
Modelos de objeto
7Puedes encontrar los vínculos a estas tres especificaciones CSS en el siguiente link web:
www.w3.org/Style/CSS.
37
- Modelo de Objetos del Documento (Núcleo) Nivel 1:
Esta versión incluye documentos HTML y XML así
como la manipulación y navegación de documentos.
Esta especificación puede encontrarse en
www.w3.org/TR/REC-DOM-Level-1/
38
Imagen 12: Esquema básico del MVC
39
los frameworks actuales trabajan con este patrón, interpretando las
funciones MVC.
40
3) Permite el trabajo de varios equipos en paralelo bajo métodos
comunes de programación.
4) Un Framework MVC te ayuda a controlar los recursos del servidor,
evitando bugs (errores) que puedan repercutir en el rendimiento;
por ejemplo, los casos en los que olvidamos cerrar conexiones a la
base de datos, sobrecargando el servidor.
1.4.2 Programación OO
La programación orientada a objetos (OOP por sus siglas en inglés) usa los
objetos en sus interacciones para diseñar aplicaciones y programas
informáticos. A continuación, detallaremos los conceptos básicos y
brindaremos ejemplos prácticos orientados a PHP (muchos otros lenguajes
utilizan POO).
Clase
Una clase es un modelo que se utiliza para crear objetos que comparten un
mismo comportamiento, estado e identidad. Podemos utilizar un ejemplo
cotidiano para ejemplificar, como puede ser definir a Persona como una
clase (la abstracción de Juan, Carolina, Ana y Marcos, por ejemplo) cuyo
comportamiento puede ser caminar, correr, estudiar, leer, entre otros, o es
factible que se encuentre en estado despierto, dormido, etc. y sus
características (propiedades) pueden ser el color de ojos,color de pelo, su
estado civil, etc. Ya veremos esto de los estados y propiedades más
adelante.
class Persona {
# Propiedades
# Métodos
}
41
Objeto
Es una entidad provista de métodos o mensajes a los cuales responde;
atributos con valores concretos y propiedades.
$persona = new Persona(); //Instancia de Persona()
Método
Es el algoritmo asociado a un objeto que indica la capacidad de lo que éste
puede hacer.
function caminar() {
// conjunto de instrucciones...
}
Eventos y mensajes
Un evento es un suceso en el sistema, mientras que un mensaje es la
comunicación del suceso dirigida al objeto.
Propiedades y atributos
Las propiedades y atributos son variables que contienen datos asociados a
un objeto. Siguiendo con el ejemplo de la persona, podemos nombrar:
$nombre = 'Juan';
$apellido = 'Perez';
$fecha_nacimiento = '26/10/1970';
42
Polimorfismo: es la capacidad que da a diferentes
objetos la posibilidad de contar con métodos,
propiedades y atributos de igual nombre, sin que los de
un objeto interfieran con los de otro.
Herencia: es la relación existente entre dos o más clases,
donde una es la principal (madre) y otras son
secundarias y dependen (heredan) de ellas (clases
“hijas”) y donde, a la vez, los objetos heredan las
características de los objetos de los cuales heredan.
Recolección de basura: es la técnica que consiste en
destruir aquellos objetos cuando ya no son necesarios,
liberándolos de la memoria. (Bahit, 2011, p. 12).
Según el Manual Oficial de PHP, una Clase es: “una colección de variables y
funciones que trabajan con estas variables. Las variables se definen
utilizando var y las funciones utilizando function” (PHP, s.f., recuperado de
http://goo.gl/ROzEtc).Para definir una clase, el manual nos dice:
Por ejemplo:
<?php
Class SimpleClass
{
// Declaración de la propiedad
public $var = 'a default value';
43
}
}
?>
Abstractclass NombreDeMiClaseAbstracta {
#...
}
Herencia de clases
Sigue Bahit (2011, p.15):
Los objetos pueden heredar propiedades y métodos de otros
objetos. Para ello, PHP permite la extensión (herencia) de
clases, cuya característica representa la relación existente
entre diferentes objetos. Para definir una clase como
extensión de una clase madre se utiliza la palabra clave
extends.
Class NombreDeMiClaseMadre {
#...
}
Class NombreDeMiClaseHija extends NombreDeMiClaseMadre
{
/* esta clase hereda todos los métodos y
propiedades de
la clase madre NombreDeMiClaseMadre
*/
}
PHP 5 incorpora clases finales que no pueden ser heredadas por otra:
finalclassNombreDeMiClaseFinal {
#esta clase no podrá ser heredada
}
44
Para poder decidir qué clase declarar usemos la tabla siguiente:
Una vez que las clases han sido declaradas, será necesario crear los objetos
y utilizarlos, aunque hemos visto que algunas clases-como las clases
abstractas- son solo modelos para otras y, por lo tanto, no necesitan
instanciar al objeto.
Para instanciar una clase, debemos usar la palabra clave new. El objeto será
creado, asignando esta instancia a una variable (la cual, adoptará la forma
de objeto). Bahit (2011) nos recuerda que siempre debemos declarar la
clase antes de instanciarla:
# declaro la clase
class Persona {
#...
}
45
class Persona {
var $nombre;
var $apellido;
var $edad;
}
Las propiedades estáticas de una clase, pueden ser accedidas sin necesidad
de instanciar un objeto; y sus valores son estáticos (es decir, no pueden
variar ni ser modificados). Las definimos anteponiendo la palabra clave
static:
46
classPersonaAPositivoextends Persona {
publicstatic $ciudad = 'CBA';
}
Otro tipo de propiedad de una clase son las constantes, aquellas que
mantienen su valor de forma permanente y sin cambios y, a diferencia de
las propiedades estáticas, las constantes solo pueden tener una visibilidad
pública. Puede declararse una constante de clase como cualquier
constante normal en PHP 5.
47
Métodos en PHP
Los métodos de una clase son un algoritmo, al igual que una función. Para
declarar un método antepongamos function al nombre del método,
seguido por un paréntesis y llaves para encerrar al algoritmo:
# declaro la clase
class Persona {
#propiedades
#métodos
functiondonar_sangre() {
#...
// instrucciones
}
}
Al igual que cualquier otra función en PHP, los métodos reciben los
parámetros requeridos dentro de los paréntesis:
# declaro la clase
class Persona {
#propiedades
#métodos
functiondonar_sangre($destinatario) {
#...
}
}
48
implementación. Cuando se hereda de una clase abstracta,
todos los métodos definidos como abstract en la definición
de la clase parent deben ser redefinidos en la clase child;
adicionalmente, estos métodos deben ser definidos con la
misma visibilidad (o con una menos restrictiva). Por ejemplo,
si el método abstracto está definido como protected, la
implementación de la función puede ser redefinida como
protected o public, pero nunca como prívate. (PHP, s.f.,
http://goo.gl/L3FwFl).
Bahit (2011) nos ayuda a entenderlo mejor explicando que los métodos
abstractos son declarados en una clase abstracta, pero no contienen una
indicación (un código) que indique qué y cómo hará algo (es decir, sin
indicar el algoritmo que han de implementar).
__construct()
# constructor de la clase
49
function __construct() {
$this->set_estado_producto('en uso');
}
}
# constructor de la clase
function __construct() {
$this->set_estado_producto('en
uso');
}
# destructor de la clase
function __destruct() {
$this-
>set_estado_producto('liberado');
print 'El objeto ha sido
destruido';
}
}
Ejemplo tomado de Bahit, 2011, p.21.
50
Entro otros métodos encontramos: __call, __callStatic,
__get, __set, __isset, __unset, __sleep, __wakeup, __toString,
__invoke, __set_state y __clone.8
Servidores web
51
- Poder ver y probar localmente páginas web hechas
en lenguaje PHP.
52
sencilla y ligera que facilita enormemente a los
desarrolladores crear un servidor web local para realizar
pruebas. Todo lo que necesita para configurar un servidor
web – la aplicación servidor (Apache), la base de datos
(MySQL), y un lenguaje de script (PHP) – está incluido en un
único archivo extraíble. XAMPP es también multi-
plataforma, lo que significa que funciona bien tanto en
Linux, como Mac o Windows. Dado que la mayoría de
servidores web actuales usan los mismos componentes que
XAMPP, la transición desde el servidor de prueba local al
servidor de producción también es extremadamente fácil. El
desarrollo web utilizando XAMPP es especialmente amigable
para los principiantes. (MIKOLUK, 2013, recuperado de
https://goo.gl/j8MBGh).
53
entrega el contenido web a un ordenador. Además,
Apache es el servidor web más popular en internet,
haciendo funcionar casi el 54% de todas las páginas web.
2) MySQL: Cada aplicación web -ya sea simple o compleja-
requiere una base de datos para almacenar los datos
que recoge. MySQL, que es de código abierto, es el
sistema gestor de base de datos más popular. Alimenta
desde websites de aficionados hasta plataformas
profesionales como WordPress.
3) PHP: PHP son las siglas de Preprocesador de Hipertexto.
Es un lenguaje de script del lado del servidor que hace
funcionar algunas de las páginas web más famosas del
mundo, incluyendo WordPress y Facebook, tal como
veremos más adelante en este curso. Es de código
abierto, relativamente fácil de aprender y funciona
perfectamente con MySQL, lo que lo ha hecho una
opción muy popular para los desarrolladores web.
4) Perl: Perl es un lenguaje de programación dinámico y de
alto nivel que se usa ampliamente en la programación de
redes, la administración de sistemas, entre otros usos.
Aunque menos popular para el desarrollo web, Perl
tiene numerosas aplicaciones específicas. (2013,
recuperado dehttps://goo.gl/j8MBGh).
54
Referencias
99Lime (s.f.). Hi, I’m Joshua. I focus on making web designer’s life
easier.Recuperado dehttp://www.99lime.com/
Achour, M.; Betz, F.; Dovgal, A. y otros (2014). Manual de PHP [Versión
electrónica].Recuperado de https://php.net/manual/es/index.php
Blogspot (s.f.). Diseño web por capas [post de la web]. Recuperado de:
http://webbylevels-es.blogspot.com.ar/
Cristian Ayala (13 de diciembre de 2009). Cómo hacer una aplicación en capas. En
CristianAyalaDeveloperVB.net[blog]. Recuperado de
http://cristianayalavbnet.blogspot.com.ar/2009/12/como-hacer-una-aplicacion-
en-capas.html
55
Eguíluz Pérez, J. (2008). Introducción a JavaScript. Recuperado el 06 de julio de
2015 de http://librosweb.es/libro/javascript/
Gauchat, J. D. (2013).El gran libro de HTML5 CSS3 y Javascript. Barcelona:
Marcombo.
56