viernes, 11 de enero de 2019

Sesión 9

Agenda


  • Introducción a PHP
  • Sobre PHP
  • Características
  • Competidores
  • ¿Quién lo usa?
  • Sobre su orientación programada
  • Sobre servicios
  • Evolución de PHP
  • Sobre la instalación
  • Manipulación de formularios con PHP
  • Conectando a la base de datos
  • Ejemplo de un CRUD que usa PHP

Introducción a PHP

Sobre PHP


Características

Lenguaje de lado servidor más extendido en la web, potente y simple. Posee un gran soporte en la mayoría de los servidores de hosting. Es open source: pertenece a la comunidad.

Competidores

Se destacan ASP.NET-ASP estándar, NodeJS, Ruby, Java, Python entre otros.

¿Quién lo usa?

CMS populares: WordPress, Joomla!, Drupal.
Sistemas de comercio electrónico:  Prestashop, Woocommerce, Magento.

Sobre su orientación programada


Multiplataforma.
Estilo de programación totalmente libre.
Programación estructurada (funciones).
Programación Orientada a Objetos (clases y objetos).
Actualmente se están incorporando características de la programación funcional.

Filosofía de código abierto.
Multitud de herramientas, librerias, frameworks gratuitos.
El núcleo del lenguaje con nutrida cantidad de funciones para hacer todo tipo operaciones.

Sobre servicios


Funciones de correo electrónico.
Gestión de bases de datos.
Gestión de archivos.
Tratamiento de imágenes.
Funciones básicas de aspectos de internet (manejo de sesiones, cookies, url).
Funciones básicas de propósito general.

En este caso, nos interesa la conexión de PHP con alguna base de datos (MySQL) para mostrar información en una página WEB.

Evolución de PHP


Rasmus Lerdorf en 1994.
Nace como un CGI escrito en C que permitía la interpretación de un número limitado de comandos. El sistema fue denominado Personal Home Page Tools. Luego PHP/FI -Form Interpreter.

Versión 3: 1997 con nuevas funcionalidades de soporte a protocolos de Internet / soporte a mayoría de bases de datos.

Versión 4: compilado => más velocidad, independencia del servidor WEB, más API's.

Versión 5. mejorada la integración con el paradigma de POO (estable por 11 años y aunque no es la última es la más madura).

Versión 6 y 7: mejoras en rendimiento, pero aún no se ajusta a todos los servidores.


Ventajas 

  • PHP puede ser usado con cualquier sistema operativo virtual y cualquier tipo de servidor.
  • Las aplicaciones se pueden programar orientadas al procedimiento o al proyecto.
  • HTML, imágenes, PDFs, o archivos flash pueden ser generados dinámicamente con PHP.
  • PHP soporta un agran cantidad de bases de datos diferentes, por lo que este lenguaje de scripting es ideal para la creación de webs basados en bases de datos.
  • PHP ofrece soporte completo para la comunicación del servidor con otros protocolos.

Desventajas


  • Genera URLs que normalmente son crípticas para los usuarios y proporcionan menos palabras clave para los motores de búsqueda.
  • Como es un lengueje que se interpreta en ejecución para ciertos usos puede resultar un inconveniente que el código fuente no pueda ser ocualtado. La ofuscación es una técnica que puede dificultar la lectura del código pero no la impide y, en ciertos casos, representa un costo en tiempos d ejecución.

Sobre la instalación  


PHP, el propio lenguaje.
Una base de datos, que suele ser MySQL pero que podría ser cualquier otra.
Un servidor WEB, que puede ser usualmente Apache o Nginx.

Además, PHP  lo más normal es que se instale como módulo de un servidor WEB, de modo que las páginas generadas por el servidor se puedan procesar mediante PHP. 
Formas de instalar:
  Paquetes todo en uno.
  Todos los programas por aparte.
  Virtualización.
  Editores onLine.

Instalación en Linux






















En la carpeta donde se desean tener los fuentes:    $php -S localhost:8080

Manipulación de formularios en PHP


Escribe un título


Un script PHP se escribe en cualquier parte del documento HTML. 

Inicia con <?php y termina con?>
No es sensitivo a mayúsculas a excepción de las variables.
Las variables se inician con $.
Las instrucciones deben terminar con ;








Tipos de datos, variables y constantes


PHP es tipado.

Tipos: String, Integer, Float (floating point numbers - also called double), Boolean, Array, Object, NULL, Resource.

La variables toman el tipo de su definición. Las cosntantes se declaran por medio de la función define() y tienen alcance global.


Operadores aritméticos y de comparación







Declaración y llamado de funciones




Arreglos e invocación a ordenamientos





Arreglos estándar y arreglos asociativos y su forma de recorrido o acceso.

Manejo y validación de formularios


$_SERVER["PHP_SELF"] es una variable de entorno que contiene el nombre del archivo del script en php en ejecución.

$_POST["name"]  devuelve el contenido del campo del formulario que etiquetado con el nombre del argumento.














Conectando a la Base de Datos


Para establecer la conexión con la BD


Se utilizan las funciones disponibles en la biblioteca MySQLi:

mysqli()

Se indican el servidor, usuario, password y esquema de base de datos.

conn->close()

Para desconectar la comunicación luego de la transacción.





Para consultar registros en una BD


Se utilizan las funciones disponibles en la biblioteca MySQLi:

query($elSQL):

Se indica la sentencia de SQL a recuperar y luego se itera sobre el resultado.






Ejemplo de un CRUD que usa PHP


Para este ejemplo se hizo uso del framework Laravel el cual es de código abierto para desarrollar aplicaciones y servicios web con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP de forma elegante y simple.

El presente ejemplo implementa un gestor de categorías(creación, consulta, edición y eliminación) para un sistema que ofrece servicios de salud y cuido.

Ventana de inicio con las opciones de consultar y crear categorías.




Ventana para registrar una nueva categoría de servicios.


Ventana para consultar los servicios previamente registrados y poder editarlos si se desea dando clic en el botón amarillo.


Ventana para editar una categoría de servicios.






Al volver a la ventana de consulta de servicios podemos eliminar una categoría dando clic en el botón rojo de eliminar.







Se dice que Laravel usa un modelo MVC, pero en el fondo realmente no es así, en vez de eso maneja un modelo que se acerca más al de N-Capas donde el componente HTTP almacena los controladores y las vistas de la aplicación. Luego los demás componentes manejan los comandos, los controladores del API lo que se le conoce como "Business Layer", el modelo de dominio y la capa de acceso de datos la cual tiene una interación directa con la base de datos.





Para más información sobre la verdadera arquitectura de Laravel consultar el siguiente enlace:

 Porque Laravel no es MVC


A continuación se muestra el "Scope" de los elementos más importantes de como se estructura la aplicación del gestor de categorías:



Referencias 








jueves, 10 de enero de 2019

Sesión 8

Agenda

  • Estadísticas
  • Importancia de la accesibilidad web
  • Ventajas adicionales de la accesibilidad web
  • Discapacidad y sus barreras de acceso
  • ¿Quién desarrolla las pautas?
  • Evaluación automática
  • Evaluación manual
  • Experiencia de desarrollo web accesible

Validación de accesibilidad en sitios Web





Estadísticas 


10,53% de la población enfrenta una situación de discapacidad, es decir, 452849 son personas con discapacidad.
Censo Nacional de Población 2011




Según UNESCO a nivel mundial existen más de 1000 millones de personas con alguna condición de discapacidad.

Importancia de la accesibilidad web

  • Relevancia actual de la web.
  • Fomentar igualdad de oportunidades.
  • Derecho de acceso a la información.
                        - Ley 7600, 7948, 8661.

  • La accesibilidad Web significa que personas con algún tipo de discapacidad van poder hacer uso de la Web, permitiendo que estas personas puedan percibir, entender, navegar e interactuar con la Web, fomentando la igualdad de oportunidades y cumpliendo con el derecho del acceso a la información.
  • La accesibilidad Web también beneficia a otras personas, incluyendo personas de edad avanzada que han visto mermadas sus habilidades a consecuencia de la edad.

Ventajas adicionales de la accesibilidad Web

  • Mejora de la usabilidad.
  • Simplificación del desarrollo y mantenimiento.
  • Posicionamiento SEO.
Los buscadores Web se comportan como usuarios ciegos, por lo que implementar la accesibilidad Web ayuda al posicionamiento SEO.


Discapacidades y sus barreras de acceso


Discapacidades visuales (Seguera y baja visión)

Barreras de acceso

  • Imágenes sin texto alternativo.
  • Videos sin descripción textual o sonora.
  • Tablas cuyo contenido resulta incomprensible si se lee de manera secuencial.
  • Texto añadido mediante imágenes.
  • Uso del color en texto e imágenes.
  • Espaciado entre elementos.
  • Tamaño de letra.

Existen productos de apoyo: lectores de pantalla, navegadores de voz y teclados como dispositivo de entrada.


Discapacidades auditivas (Sordera/ Hipoacusia)

 Barreras de acceso

  •  Falta de transcripción de los contenidos sonoros.
  •  Contenido complejo.


 Existen productos de apoyo: videos co intérpretes o avatares y contenido de fácil entendimiento.


Discapacidades motoras (Distrofia/ Distonía/ Parkinson)


Barreras de acceso 

  • Iconos, botones, enlaces o elementos de interacción muy pequeños.
  • Poca adaptabilidad del uso con el teclado.
  • Tiempos de respuesta limitados.

Existen productos de apoyo: ratones especiales, teclados alternativos, ratones de cabeza, unicornio o adaptador de boca. Además de software con reconocimiento de voz y sistemas de seguimiento de ojos.



¿Quién desarrolla las pautas?

  • Organismo que define estándares para la Web.
  • Desarrollo por múltiples partes internacionales.
El máximo organismo dentro de la jerarquía de Internet que se encarga de promover la accesibilidad es el W3C, es especial suu grupo de trabajo WAI (Web Accesibility Initiative).
El W3C es el World Wide Web Consortium, un organismo internacional que tiene como objetivo "guiar la Web hacia su máximo potencial a través del desarrollo de protocolos y pautas que aseguren el crecimiento futuro de la Web".




Evaluación automática


La evaluación automática nos permite realizar una evaluación rápida, nos ayuda a tener una primera impresión de la accesibilidad de una página web.

  • HeadingMap, al activar la herramienta hace un mapa de títulos de 1 - 3.
  • WCAG Contrast checker, al activar la herramienta analiza el contraste de colores, e indica si la combinación del Foreground color y Background color, pasa los niveles de AA y AAA.
  • Web developer: 
           - En imágenes, activar display alt atributes, para verificar las descripciones de las imágenes.
           - En CSS, activar disable all styles, para observar la estructura de la página.
  • Wave, permite ver las pautas de la WCAG 2.0 que se están incumpliendo. 


También existe otra página adicional para la verificación de la accesibilidad de las páginas Web:

Tawdis.net



Evaluación manual


Falsos positivos. 
Análisis completo y fiable de la accesibilidad Web.
Errores leves, pero fatales.

La evualuación automática no proporciona un análisis definitivo y fiable, ya que puede no detectar errores importantes o señalar errores que realmente no existen (falsos positivos).
Solamente yn análisis manual por parte de un experto puede ofrecer un análisis completo y fiable de la accesibilidad web de una página.

También, permite detectar errores leves, pero fatales. Un ejemplo es que un análisis automático puede arrojar un 98% de accesibilidad, lo que daría la impresión de que esta bastante bien la página, sin embargo, si el error fuera un botón no etiquetado de cerrar sesión, sería un error grave de accesibilidad.

Desarrollo Web accesible






Disponible en.  estadística nacional





Referencias


Material de referencia: Validación de la accesibilidad