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
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
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: