Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATERIAL TÉCNICO
DE APOYO
Fundamentos de Programación Web
TAREA N°01
1.- INTRODUCCIÓN.
PDO significa PHP Data Objects, Objetos de Datos de PHP, una extensión para
acceder a bases de datos. PDO permite acceder a diferentes sistemas de bases de
datos con un controlador específico (MySQL, SQLite, Oracle...) mediante el cual se
conecta. Independientemente del sistema utilizado, se emplearán siempre los
mismos métodos, lo que hace que cambiar de uno a otro resulte más sencillo.
• PDO
• PDOStatement
• PDOException
Es esta clase, PDOStatement, la que maneja las sentencias SQL y devuelve los
resultados.
2
Fundamentos de Programación Web
PDO maneja los errores en forma de excepciones, por lo que la conexión siempre
ha de ir encerrada en un bloque try/catch. Se puede (y se debe) especificar el modo
de error estableciendo el atributo error mode:
3
Fundamentos de Programación Web
4
Fundamentos de Programación Web
También existe un método lazy, que es pasando los valores mediante un array
(siempre array, aunque sólo haya un valor) al método execute():
5
Fundamentos de Programación Web
Una característica importante cuando se utilizan variables para pasar los valores es
que se pueden insertar objetos directamente en la base de datos, suponiendo
que las propiedades coinciden con los nombres de las variables:
• bindParam()
• bindValue()
Con bindParam() la variable es enlazada como una referencia y sólo será evaluada
cuando se llame a execute():
6
Fundamentos de Programación Web
En la práctica bindValue() se suele usar cuando se tienen que insertar datos sólo
una vez.
Y bindParam() cuando se tienen que pasar datos múltiples (desde un array por
ejemplo).
Ambas funciones aceptan un tercer parámetro, que define el tipo de dato que se
espera. Los data types más utilizados son:
• PDO::PARAM_BOOL (booleano)
• PDO::PARAM_NULL (null)
• PDO::PARAM_INT (integer)
• PDO::PARAM_STR (string).
7
Fundamentos de Programación Web
8
Fundamentos de Programación Web
El estilo de devolver los datos FETCH_CLASS es algo más complejo: devuelve los
datos directamente a una clase. Las propiedades del objeto se establecen ANTES
de llamar al constructor. Si hay nombres de columnas que no tienen una propiedad
creada para cada una, se crean como public. Si los datos necesitan una
transformación antes de que salgan de la base de datos, se puede hacer
automáticamente cada vez que se crea un objeto:
9
Fundamentos de Programación Web
Con lo anterior hemos podido modificar cómo queríamos mostrar nombre y ciudad
de cada registro. A nombre lo hemos puesto en mayúsculas y de ciudad sólo hemos
mostrado las tres primeras letras. Si lo que quieres es llamar al constructor ANTES
de que se asignen los datos, se hace lo siguiente:
10
Fundamentos de Programación Web
Ya hemos visto como funcionan las sentencias preparadas con prepare() y execute(),
vamos a ver un ejemplo con query():
Cuando tenemos que ejecutar varias sentencias de vez, como INSERT, es preferible
utilizar transacciones ya que agrupa todas las acciones y permite revertirlas todas en
caso de que haya algún error.
11
Fundamentos de Programación Web
TAREA N°02
12
Fundamentos de Programación Web
El concepto de AJAX ha existido desde mediados de los años 90. Sin embargo,
obtuvo un reconocimiento más amplio cuando Google comenzó a incorporar el
concepto en Google Mail y Google Maps en el 2004. Hoy en día, se usa ampliamente
en varias aplicaciones web para agilizar el proceso de comunicación del servidor.
¿Alguna vez has calificado un producto que compraste online? ¿Alguna vez has
llenado un formulario de votación en línea? De cualquier manera, ambas
operaciones usan AJAX. Una vez que haces clic en el botón de calificación o de
votación, el sitio web actualizará el cálculo, pero la página completa permanecerá sin
cambios.
Salas de chat.
Twitter ha incorporado AJAX recientemente para sus actualizaciones. Cada vez que
se crean nuevos tweets sobre ciertos temas de tendencia, Twitter actualizará las
nuevas cifras sin afectar la página principal.
En pocas palabras, AJAX hace que las funciones multitarea sean fáciles. Si alguna
vez observas una situación similar en la que dos operaciones funcionan
simultáneamente, con una en ejecución y la otra inactiva, es posible que sea AJAX
en acción.
13
Fundamentos de Programación Web
14
Fundamentos de Programación Web
ARQUITECTURA MVC.
Patrones de software.
Antes de entrar en la parte más práctica de todo este asunto, es decir, antes de que
veamos los patrones de arquitectura y los apliquemos en un ejemplo concreto de
aplicación web, tienes que dejarme que te hable de los patrones de software.
15
Fundamentos de Programación Web
Para que un patrón pueda considerarse tal cosa, tiene que cumplir estas
condiciones:
¿Qué es el MVC?
16
Fundamentos de Programación Web
Pues bien, si a esas tres capas les ponemos nombres exóticos como modelo, vista
y controlador, y tuneamos un poco el esquema, ya lo tenemos: la arquitectura MVC,
el cual podemos observar en la siguiente figura que define de mejor manera lo
explicado.
¿Y ya está? Bueno, no. Ahora tienes que aprender qué significa en realidad esta
definición.
Porque todo esto está muy bien como construcción teórica, pero:
Es decir, apenas tendremos que hacer trabajo de diseño previo, porque, si es una
aplicación web, ya sabemos qué clases tendremos que construir: los que nos indique
la arquitectura MVC.
17
Fundamentos de Programación Web
Antes de pasar a la parte práctica de todo esto, permíteme un breve apunte: por
supuesto, nada impide construir arquitecturas con más de 3 capas en el desarrollo
de vuestros proyectos.
De hecho, nosotros vamos a usar una variante del MVC en el que se añade una
capa adicional por debajo del modelo, es decir, una arquitectura con 4 capas. Pero
ya llegaremos a eso.
Tras esta introducción al MVC, vamos a estudiar a fondo este patrón. Y lo vamos a
hacer por medio de un ejemplo, que es como mejor suelen comprenderse estas
cosas. Una vez terminado y comprendido el ejemplo, daremos una definición más
teórica.
Pero, para que esto funcione, tienes que leer el código fuente con atención. Es un
código sencillo y bien comentado, y que se va complicando muy poco a poco, en
pasos incrementales, desde un código clásico monolítico hasta una implementación
completa de un MVC.
Esas publicaciones se guardan como registros en una tabla de una base de datos
que trabaja con el sistema.
En el código de ejemplo sobre el que vamos a trabajar, nos vamos a centrar en una
funcionalidad concreta de este mini-blog: el listado de los artículos existentes en la
base de datos en el cual están almacenadas toda la información correspondiente al
proyecto.
CÓDIGO MONOLÍTICO.
18
Fundamentos de Programación Web
Por supuesto, para un ejemplo tan simple como este, el código monolítico es más
que suficiente, pero en un sistema más complejo pronto empieza a convertirse en un
monstruo inmanejable.
19
Fundamentos de Programación Web
El controlador preparará esos datos y los empaquetará en un array para que estén
disponibles en la vista.
La vista que mostrará los datos del array contiene un código muy semejante al de
la solución monolítica, solo que ahora estará ubicada en un archivo aparte
(showAllArticles.php) y hará un bucle sobre el array de resultados que le ha
preparado el controlador:
20
Fundamentos de Programación Web
• Un modelo para los artículos (archivo articles.php). Contendrá una clase con
un método que se encargará de acceder a la base de datos y empaquetar el
resultado de la consulta en un array.
Por lo tanto, el controlador (index.php), al extraer de él todo lo que tenga que ver con
la base de datos, se queda en algo tan sencillo como esto:
21
Fundamentos de Programación Web
El modelo (articles.php) consta de una clase con solo un método (de momento)
encargado de consultar todos los artículos y devolverlos empaquetados en un array:
22
Fundamentos de Programación Web
TAREA N°03
Veamos qué tiene de especial JavaScript, qué podemos lograr con este lenguaje y
qué otras tecnologías se integran bien con él.
¿Qué es JavaScript?
Cuando JavaScript fue creado, inicialmente tenía otro nombre: “LiveScript”. Pero
Java era muy popular en ese momento, así que se decidió que el posicionamiento
de un nuevo lenguaje como un “Hermano menor” de Java ayudaría.
23
Fundamentos de Programación Web
El motor aplica optimizaciones en cada paso del proceso. Incluso observa como el
script compilado se ejecuta, analiza los datos que fluyen a través de él y aplica
optimizaciones al código maquina basadas en ese conocimiento.
Los navegadores más modernos le permiten trabajar con archivos, pero el acceso
es limitado y solo permitido si el usuario realiza ciertas acciones, como “arrastrar” un
archivo a la ventana del navegador o seleccionarlo por medio de una etiqueta
<input>.
Existen maneras de interactuar con la cámara, micrófono y otros dispositivos, pero
eso requiere el permiso explícito del usuario. Por lo tanto, una página habilitada para
JavaScript no puede habilitar una cámara web para observar el entorno y enviar la
información a la NSA.
24
Fundamentos de Programación Web
Esta restricción es conocida como “política del mismo origen” (“Same Origin Policy”).
Es posible la comunicación, pero ambas páginas deben acordar el intercambio de
datos y también deben contener el código especial de JavaScript que permite
controlarlo. Cubriremos esto en el tutorial.
25
Fundamentos de Programación Web
JavaScript es la única tecnología de los navegadores que combina estas tres cosas.
Eso es lo que hace a JavaScript único. Por esto es la herramienta más extendida
para crear interfaces de navegador.
Dicho esto, JavaScript también permite crear servidores, aplicaciones móviles, etc.
Esto es algo obvio, porque los proyectos y requerimientos son diferentes para cada
persona.
Así que recientemente han aparecido una gran cantidad de nuevos lenguajes, los
cuales son transpilados (convertidos) a JavaScript antes de ser ejecutados en el
navegador.
26
Fundamentos de Programación Web
Hay más. Por supuesto, incluso si nosotros usamos alguno de estos lenguajes
transpilados, deberíamos conocer también JavaScript para realmente entender qué
estamos haciendo.
RESUMEN
Hoy en día, JavaScript tiene una posición única como el lenguaje más extendido y
adoptado de navegador, con una integración completa con HTML y CSS.
27
Fundamentos de Programación Web
TAREA N°04
Angular JS Introducción.
¿Qué es AngularJS?
Características de AngularJS
Angular tiene las siguientes características clave que lo convierten en uno de los
marcos de gran alcance en el mercado.
Enlace del modelo de datos – no es necesario escribir código especial para enlazar
datos a los controles HTML. Esto puede hacerlo Angular simplemente agregando
algunos fragmentos de código.
28
Fundamentos de Programación Web
Arquitectura AngularJS
Angular.js sigue la arquitectura MVC, el diagrama del marco MVC como se muestra
a continuación.
• Los modelos se utilizan para representar los datos. Los datos en su modelo
pueden ser tan simples como simplemente tener declaraciones primitivas. Por
ejemplo, si mantiene una solicitud de estudiante, su modelo de datos podría tener
un ID de estudiante y un nombre. O también puede ser complejo al tener un
modelo de datos estructurado. Si usted está manteniendo una aplicación de
propiedad de automóviles, puede tener estructuras para definir el vehículo en sí
en términos de capacidad del motor, capacidad de asiento, etc.
29
Fundamentos de Programación Web
Ventajas de AngularJS
Hay muchos entornos de desarrollo integrados que puede usar para el desarrollo de
AngularJS, algunos de los más populares se mencionan a continuación. En nuestro
ejemplo, estamos usando Webstorm como nuestro IDE.
1. Tormenta web
2. Texto Sublime
3. AngularJS Eclipse
4. Estudio visual
30
Fundamentos de Programación Web
El siguiente ejemplo muestra la forma más fácil de crear su primera aplicación “Hello
world” en AngularJS.
1. La palabra clave “ng-app” se utiliza para denotar que esta aplicación debe
considerarse como una aplicación js angular. Cualquier nombre se puede dar a
esta aplicación.
2. El controlador es lo que se utiliza para mantener la lógica empresarial. En la
etiqueta h1, queremos acceder al controlador, que tendrá la lógica para mostrar
“HelloWorld”, por lo que podemos decir, en esta etiqueta queremos acceder al
controlador llamado “HelloWorldCtrl”.
3. Estamos utilizando una variable miembro llamada “message” que no es más que
un marcador de posición para mostrar el mensaje “Hello World”.
4. La “etiqueta de script” se utiliza para hacer referencia al script angular.js que tiene
toda la funcionalidad necesaria para js angular. Sin esta referencia, si tratamos
de usar cualquier función AngularJS, no funcionarán.
5. “Controller” es el lugar donde realmente estamos creando nuestra lógica de
negocio, que es nuestro controlador. Los detalles de cada palabra clave se
explicarán en los capítulos siguientes. Lo que es importante tener en cuenta que
estamos definiendo un método de controlador llamado ‘HelloWorldCtrl’ al que se
hace referencia en el paso 2.
6. Estamos creando una “función” que se llamará cuando nuestro código llame a
este controlador. El objeto $scope es un objeto especial en AngularJS que es un
objeto global utilizado dentro de Angular.js. El objeto $scope se utiliza para
administrar los datos entre el controlador y la vista.
7. Estamos creando una variable miembro llamada “message”, asignándole el valor
de “HelloWorld” y adjuntando la variable miembro al objeto scope.
31
Fundamentos de Programación Web
Salida:
32
Fundamentos de Programación Web
REFERENCIAS BIBLIOGRÁFÍCAS
Referencia N° 01:
DIEGO.COM. (21 de octubre del 2021). Tutorial del PDO.
https://diego.com.es/tutorial-de-pdo
Referencia N° 02:
Gustavo B. (11 de enero del 2023). ¿Qué es AJAX y como funciona?.
https://www.hostinger.es/tutoriales/que-es-ajax
Referencia N° 03:
DWES DOCS. (20 de febrero del 2023). Arquitectura MVC
https://www.hostinger.es/tutoriales/que-es-ajax
Referencia N° 04:
JAVASCRIPT.INFO. (27 de noviembre del 2023). El Tutorial de JavaScript Moderno
https://www.hostinger.es/tutoriales/que-es-ajax
Referencia N° 05:
GURU99. (01 de noviembre del 2023). Tutorial AngularJS para principiantes: ¡Aprende
AngularJS en 7 días!
https://guru99.es/angularjs-tutorial/
33
Fundamentos de Programación Web
REFERENCIAS DE IMÁGENES
Figura N° 01: Ver controladores disponibles en el servidor
https://diego.com.es/tutorial-de-pdo
34
Fundamentos de Programación Web
35
Fundamentos de Programación Web
36