Unidad1PHP N
Unidad1PHP N
Unidad1PHP N
Selección de
arquitecturas y
herramientas de
programación
Unidad 1
Yolanda Iglesias Suárez
DAW
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo de Desarrollo Web en entorno servidor
Centro Integrado de Formación Profesional Unidad 1. Selección de arquitecturas y herramientas de programación
AVILÉS
Contenido
0.- Actitud Vs Aptitud, ¿Con qué se quedan en el trabajo? ......................................................3
UNIDAD 1. Selección de arquitecturas y herramientas de programación. ..............................3
1.- Introducción a la web como medio de comunicación .........................................................3
1.1 Web es un sistema Hipertexto/Hipermedia ........................................................................3
1.2. Páginas estáticas vs páginas dinámicas. ..............................................................................4
2.- Páginas dinámicas ..............................................................................................................................5
3.- Tecnologías para programación web del lado del servidor. ..............................................8
4.- Arquitecturas y plataformas. ..........................................................................................................9
5.- Lenguajes Web de servidor ......................................................................................................... 10
5.1.- PHP................................................................................................................................................ 10
5.2.- JSP, Java Server Pages ........................................................................................................... 11
6.- ¿Qué es un framework? ................................................................................................................ 13
7.- Software a usar a lo largo del curso ......................................................................................... 14
7.1 -Apache .......................................................................................................................................... 14
7.2.- MySQL.......................................................................................................................................... 16
7.3- PHP................................................................................................................................................. 18
7.4.- Laravel .......................................................................................................................................... 20
Por lo tanto, si me preguntas, ¿eliges aptitud o actitud?, sin duda elijo ambas, pero le
doy más importancia a la actitud. No cabe duda de que necesitas los conocimientos y
habilidades para desarrollar cualquier trabajo, pero creo que lo que finalmente te hace
decidirte por un candidato u otro a la hora de contratar a alguien es su actitud, su
predisposición al trabajo, su capacidad por afrontar situaciones, su manera incluso de
concebir la vida y de relacionarse con las personas.
Video: https://www.youtube.com/watch?v=n5mcIfmBLrg
La web se encuadra dentro de Internet, no es más que un servicio de los muchos que
presta la Red, entre los que podemos encontrar
Correo electrónico
IRC o chat
FTP
El propio web
con enlaces.
Los sistemas de hipertexto se utilizan en otros contextos aparte del web, como la ayuda
del Windows. Son muy fáciles de utilizar y también es muy fácil encontrar lo que
buscamos rápidamente, gracias a que pulsando enlaces vamos accediendo a la
información que más nos interesa.
La web no solo se limita a presentar textos y enlaces, sino que también puede
ofrecernos imágenes, videos, sonido y todo tipo de presentaciones, llegando a ser el
servicio más rico en medios que tiene Internet. Por esta razón, para referirnos al sistema
que implementa el web (hipertexto), se ha acuñado un nuevo término que es
hipermedia, haciendo referencia a que el web permite contenidos multimedia.
Las primeras páginas son las que denominamos páginas estáticas, se construyen con el
lenguaje HTML, que no permite grandes florituras para crear efectos ni funcionalidades
más allá de los enlaces.
Estas páginas son muy sencillas de crear, aunque ofrecen pocas ventajas tanto a los
desarrolladores como a los visitantes, ya que sólo se pueden presentar textos planos
acompañados de imágenes y a lo sumo contenidos multimedia como pueden ser
videos o sonidos.
Estos dos ficheros se descargan a tu ordenador desde un servidor web como respuesta
Las páginas dinámicas son más complejas y versátiles. Para aclarar este concepto,
veremos con detalle a continuación qué son las páginas dinámicas.
Dentro de las páginas web dinámicas, es muy importante distinguir dos tipos:
Como ya sabes, hay muchas páginas en Internet que no tienen extensión .htm,
.html o .xhtml. Muchas de estas páginas tienen extensiones como .php, .asp,
.jsp, .cgi o .aspx. En éstas, el contenido que se descarga al navegador es similar
al de una página web estática: HTML (o XHTML). Lo que cambia es la forma en
que se obtiene ese contenido. Al contrario de lo que vimos hasta ahora, esas
páginas no están almacenadas en el servidor; más concretamente, el contenido
que se almacena no es el mismo que después se envía al navegador. El HTML
de estas páginas se forma como resultado de la ejecución de un programa,
y esa ejecución tiene lugar en el servidor web (aunque no necesariamente por
ese mismo servidor).
Pasos:
Las aplicaciones web emplean páginas web dinámicas para crear aplicaciones que se
ejecuten en un servidor web y se muestren en un navegador.
Hoy en día existen aplicaciones web para multitud de tareas como procesadores de
texto, gestión de tareas, o edición y almacenamiento de imágenes. Estas aplicaciones
Los componentes principales con los que debes contar para ejecutar aplicaciones web
son los siguientes:
Un servidor web para recibir las peticiones de los clientes web (normalmente
navegadores) y enviarles la página que solicitan (una vez generada puesto que
hablamos de páginas web dinámicas). El servidor web debe conocer el
procedimiento a seguir para generar la página web: qué módulo se encargará
de la ejecución del código y cómo se debe comunicar con él.
El módulo encargado de ejecutar el código o programa y generar la página web
resultante. Este módulo debe integrarse de alguna forma con el servidor web, y
dependerá del lenguaje y tecnología que utilicemos para programar la
aplicación web.
Una aplicación de base de datos, que normalmente también será un servidor.
Este módulo no es estrictamente necesario pero en la práctica se utiliza en
todas las aplicaciones web que utilizan grandes cantidades de datos para
almacenarlos.
El motivo de dividir en capas el diseño de una aplicación es que se puedan separar las
funciones lógicas de la misma, de tal forma que sea posible ejecutar cada una en un
servidor distinto (en caso de que sea necesario).
los datos almacenados de forma organizada) y acceso (que obtiene e introduce datos
en el espacio de almacenamiento).
Cada capa puede ocuparse de una o varias de las funciones anteriores. Por ejemplo, en
las aplicaciones de 3 capas nos podemos encontrar con:
Existen paquetes software que incluyen en una única instalación una plataforma
AMP completa. Algunos ni siquiera es necesario instalarlos, e incluso disponen de
versiones para distintos sistemas operativos como Linux, Windows o Mac. Uno de los
más conocidos es XAMPP, es una distribución de Apache que contiene MySQL, PHP y
Perl.
Los lenguajes del lado del servidor son utilizados para desarrollar páginas dinámicas y
estos medios son entre otros:
5.1.- PHP
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo
antes de que se envíe la página a través de Internet al cliente. Las páginas que se
ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y
otras tareas para crear la página final que verá el cliente. El cliente solamente recibe
una página con el código HTML resultante de la ejecución de la PHP. Como la página
resultante contiene únicamente código HTML, es compatible con todos los
navegadores.
PHP se escribe dentro del código HTML, lo que lo hace realmente fácil de utilizar, al
igual que ocurre con el popular ASP de Microsoft, pero con algunas ventajas como su
gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede
PHP permite configurar el servidor de modo que se permita o rechacen diferentes usos,
lo que puede hacer al lenguaje más o menos seguro dependiendo de las necesidades
de cada cual.
Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está
desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas
contribuciones de otros desarrolladores.
Algunas de las más importantes capacidades de PHP son: compatibilidad con las bases
de datos más comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por ejemplo.
Incluye funciones para el envío de correo electrónico, “upload” de archivos, crear
dinámicamente en el servidor imágenes en formato GIF, incluso animadas y una lista
interminable de utilidades adicionales.
JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como
Páginas de Servidor Java. Con JSP podemos crear aplicaciones web que se ejecuten en
variados servidores web, de múltiples plataformas, ya que Java es en esencia un
lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML
mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-
1">
<title> entrega el nombre como parámetro, de lo contrario lo pide y
saluda
</title>
</head>
<body>
<%
String nombre = request.getParameter("nombrePila");
if (nombre != null) {
%>
<h1>
Hola <%= nombre %>, <br />
¡ Bienvenido a la página !
</h1>
<%}
else {
%>
<form action="saludo.jsp" method = "get">
<p>Escriba su nombre y pulse Enviar </p>
<p><input type = "text" name = "nombrePila" />
<input type = "submit" value = "Enviar" />
</p>
</form>
<%}%>
</body>
</html>
Para aprender JSP, aparte de conocer HTML, será necesario comprender y tener algo de
experiencia en la programación en Java, que es un lenguaje de programación
Orientado a Objetos por completo. Una vez conocida la programación en Java se
puede estudiar por encima el sistema de Servlets, lo que nos dará una mejor idea del
funcionamiento interno del motor JSP.
Está claro que un framework siempre te va permitir hacer cosas de una manera fácil y
segura, que para ti serían imposibles o al menos te costaría mucho tiempo hacerlas.
Si tenemos en cuenta los puntos anteriores, sabremos que desarrollar una aplicación
con un framework nos permite hacerlo más rápido, más limpio y más seguro.
A lo largo de todo este curso, vamos a necesitar diferentes softwares, con diferentes
objetivos cada uno de ellos. Aun así, entre los tres conseguiremos un objetivo común:
diseño e implementación de páginas web dinámicas.
Las herramientas que vamos a emplear van a ser las siguientes:
• Apache. Como servidor de páginas web.
• MySQL. Como gestor de bases de datos.
• Intérprete PHP. Mediante este intérprete instalado en el servidor Apache y mediante
consultas a las bases de datos MySQL podremos conseguir crear páginas web
dinámicas, utilizando su lenguaje de programación.
• Laravel Como framework
7.1 -Apache
Apache es un servidor HTTP de código abierto y licenciamiento libre, que funciona en
Linux, sistemas operativos derivados de Unix™, Windows, Novell Netware y otras
plataformas. Ha desempeñado un papel muy importante en el crecimiento de la red
mundial, y continúa siendo el servidor HTTP más utilizado, siendo además, el servidor
de hecho contra el cual se realizan las pruebas comparativas y de desempeño para
otros productos competidores. Apache es desarrollado y mantenido por una
comunidad de desarrolladores auspiciada por Apache Software
Foundation (http://www.apache.org).
� Apache es una tecnología gratuita de código fuente abierto (open source). El hecho
realmente importante no es que sea gratuito, que también, sino sobre todo el hecho de
que sea de código abierto, ya que vamos a poder implementar soluciones
desarrolladas y mejoradas por una gran comunidad.
� Apache puede trabajar con una gran cantidad de lenguajes de programación como
PHP, Perl u otros lenguajes de script.
� Apache fue diseñado especialmente para sistemas Unix. Linux, al ser un sistema
basado en Unix, se ha aprovechado especialmente del auge que ha supuesto la
7.2.- MySQL
MySQL es un sistema gestor de bases de datos relacionales, rápido y sólido. Con la
utilización de bases de datos, podremos realizar operaciones de búsqueda, ordenación
y consulta de datos de una forma óptima.
Instalando un servidor MySQL, podremos controlar el acceso a estos datos para, de
esta forma, poder asegurar el uso simultáneo de varios usuarios, para que puedan
acceder a sus datos, garantizando que sólo podrán acceder a aquellos quienes tengan
autorización para realizar dichas tareas.
MySQL es un servidor multiusuario y de subprocesamiento múltiple que utiliza el
lenguaje SQL (Structured Query Language, Lenguaje de consulta estructurado), que es
el lenguaje estándar para la consulta de bases de datos más utilizado en todo el
mundo.
Una base de datos relacional va a guardar sus datos en tablas separadas en lugar de
poner todos sus datos en un gran almacén. Con esto conseguimos aumentar la
velocidad y flexibilidad. La parte SQL de MySQL se refiere a "Structured Query
Language".
SQL es el lenguaje estandarizado más común para acceder a bases de datos y está
definido por el estándar ANSI/ISO SQL. El estándar SQL ha evolucionado desde 1986 y
existen varias versiones. En este manual, "SQL-92" se refiere al estándar del 1992,
"SQL:1999" se refiere a la versión del 1999, y "SQL:2003" se refiere a la versión actual
del estándar. Usamos la frase "el estándar SQL" para referirnos a la versión actual de
SQL.MySQL se distribuye bajo un sistema de licencias dual. Podremos utilizarlo con una
licencia de código abierto (GPL), que será gratuita mientras cumplamos sus
condiciones. Pero si deseamos distribuir una aplicación que no sea GPL y que incluya
MySQL, tendremos que comprar una licencia adicional. MySQL™ es propiedad y
patrocinio de MySQL AB.
En cuanto a las razones por las que nos descantamos por MySQL, podemos citarlas
siguientes:
un programador va a utilizar PHP, Perl, Java, Visual Basic o .NET, por ejemplo, ya que
MySQL ofrece procedimientos almacenados, triggers, vistas, funciones, cursores, SQL
estándar y otras librerías que facilitarán la vida del programador.
7.3- PHP
PHP (PHP Hipertext Preprocessor) es un lenguaje de secuencia de comandos de
servidor que fue desarrollado de forma específica con el objetivo de construir sitios
web. Utilizaremos el lenguaje PHP en el diseño de una web, programando un código
fuente que será ejecutado cada vez que un usuario visite la página web. El código que
hayamos generado se ejecutará siempre en el lado del servidor, y será transformado a
código HTML, así como a otro tipo de contenido.
PHP es una de las soluciones adoptadas por la mayoría de programadores y empresas
para llevar a cabo sus proyectos web en Internet. Tiene todas las ventajas para que así
sea, ya que se trata de un software de código abierto (Open
Source), y por lo tanto, con la ventaja que supone también que exista una gran
comunidad dando soporte a la mejora de la tecnología y compartiendo sus proyectos
para que puedan ser mejorados por el resto.
Está desarrollado para que pueda trabajar con las plataformas más utilizadas
(Windows, Linux, Macintosh, Solaris, etc.) e incluye soporte para un gran número de
gestores de bases de datos y otras tecnologías como Java o XML.
Otro de sus puntos fuertes es su fácil aprendizaje. Como podremos comprobar a lo
largo de este libro, crear páginas PHP no resultará nada difícil; y si además, ya
poseemos algún conocimiento sobre todos lenguajes de programación, aún será más
fácil asimilarlo y llevar a la práctica esta nueva forma de crear páginas dinámicas.
Por el contrario, los lenguajes como PHP que se ejecutan en el lado del servidor, será
7.4.- Laravel
Características Generales
o Sistema de ruteo, también RESTful
o Blade, Motor de plantillas
o Peticiones Fluent
o Eloquent ORM
o Basado en Composer
o Soporte para el caché
o Soporte para MVC
o Usa componentes de Symfony
o Adopta las especificaciones PSR-2 y PSR-4