Wilson Vargas
Wilson Vargas

Un programador enamorado de su código.

Wilson Vargas
Author

Un chico con una gran experiencia en el arte del desarrollo software. Desarrollador de aplicaciones de móviles, especialista en ASP.Net, Xamarin y tecnologías de computo en la Nube en especial Azure.

Share


Suscribete


Mantente al tanto de mis nuevos artículos

Tags


Featured on Planet Xamarin badge

Twitter


Mis primeros pasos con PHP, obviamente en Azure

Wilson VargasWilson Vargas

La semana pasada estuvimos reunidos algunos Microsoft Influencers en las oficinas de Microsoft Perú, estas son de esas reuniones súper chéveres donde nos reímos, contamos anécdotas, hacemos bromas y lo que nunca falta o lo que nunca vamos a poder dejar de hablar son temas relacionados a Microsoft, en esta oportunidad tocamos un tema que todos veíamos venir que es “Microsoft ahora es diferente”.
De hecho, empezamos a tocar ese tema desde que uno de nosotros dijo que se sentía mejor usando Office for IPad que el Office que viene con la Surface, claro, era la opinión de él, pero es así… Hoy Microsoft no es el mismo de antes, hoy Microsoft está cambiando, y para bien!
Desde mi punto de vista, ahora Microsoft ve a las otras tecnologías como aliadas, pero déjenme decirles que eso se venía viendo en las empresas desde hace tiempo, ya que siempre han tratado de combinar varias tecnologías adaptándolas a sus necesidades. Hace tiempo hubo una imagen que me gustó mucho y que la compartí en mis redes sociales, es la de “Microsoft <3 Linux”.

Esta imagen describe perfectamente el ideal de un “Microsoft Open”, recientemente hemos visto que Microsoft convirtió en Open Source todo el stack de server de .NET, hace tiempo hizo lo mismo con Roslyn y tal vez empiece hacer más cosas parecidas.

Yo pienso que Microsoft quiere revolucionar el mundo nuevamente. 

Yo y mi curso de Software Libre

Cuando empezó este ciclo académico tuve la posibilidad de escoger dos cursos, de una variada lista. Yo elegí un curso llamado “Desarrollo de soluciones en software libre” dictado por un ingeniero muy bueno, el gran Fernando Castillo.
Pero esto no era lo “gracioso”, sino que cuando les decía a algunos amigos relacionados con temas Microsoft que tenía clases de “Software Libre”, sólo me atinaban a mirar raro y decirme “Es en serio?” Y luego se reían y empezábamos hablar de que hoy Microsoft estaba cambiado y mis puntos de vista y un gran etc.

En mi universidad también tengo comunicación con un compañero muy ligados a temas Open Sources, su nombre es Gerson Pardo, con él siempre criticamos a Microsoft de las cosas que hace mal y también felicitamos de las cosas que hace bien, son muy buenas las pláticas que tenemos, además con los demás compañeros y maestros que he mencionado en un artículo anterior.

Mis primeros pasos en PHP

Uno de los primero objetivos en mi curso de software libre era aprender y dominar PHP, obviamente, durante todo el curso yo traté de combinar esto con algo de Microsoft y con que más lo iba a combinar si no era con Azure.

En este artículo voy a mostrarles una de las primeras cosas que en todo curso te enseñan hacer, es un CRUD básico, pero este será escrito en PHP y desplegado en Azure vía FTP.

Empecemos…

Antes de empezar a escribir código vamos a preparar el entorno donde vamos a desplegar este ejemplo, para eso vamos al panel de administración de Azure y elegimos la opción Nuevo -> COMPUTE -> WEBSITE -> CUSTOM CREATE.

Le damos un nombre adecuado al subdominio de nuestro website, escogemos el plan del hosting, elegimos la opción de “Crear una nueva base de datos MySQL” para poder almacenar los datos de nuestro ejemplo, le ponemos un nombre adecuado a nuestra cadena de conexión y continuamos.

Ahora le damos un nombre adecuado a nuestra base de datos, elegimos la región, aceptamos los términos y finalizamos.

Ahora tenemos que configurar que nuestro website soporte PHP, para esto en el panel de administración de nuestro website vamos a la opción de configuración.

Estando allí escogemos la opción de PHP y desactivamos el resto, finalmente presionamos en guardar como se muestra en la imagen.

Para poder desarrollar este ejemplo tenemos que agregar una tabla a nuestra base de datos, la tabla que yo crearé será la de “Contactos”, para crear una tabla existen varias formas la que yo suelo utilizar la que les voy a mostrar en este tutorial.

En el panel de administración de nuestro website vamos a la opción “Dashboard” y elegimos “Ver cadena de conexión”

Aquí te mostrará todo lo que necesitas saber para acceder a tu base de datos creada, como el nombre de la base de datos, la fuente, el usuario y la contraseña. Anota estas credenciales en un editor de texto, ya que nos será útil en los siguientes pasos.

Creando una tabla en mi base de datos

Para acceder remotamente a nuestra base de datos vamos a utilizar HeidiSQL una herramienta muy útil para administrar bases de datos, no te preocupes si tal vez quieres hacerlo con alguna otra herramienta también puedes hacerlo, recuerda ahora Microsoft no es sólo Microsoft :P

Una vez abierto HeidiSQL vamos a la opción de Nuevo -> Sesión en directorio raíz.

Una vez allí, ingresamos las credenciales que guardamos en los pasos anteriores, en la parte de Hostname/IP ingresamos la fuente, en la parte de User el usuario y en Password la contraseña de nuestro servicio de base de datos alojado en Azure.
El puerto déjalo como está, ya que MySQL trabaja con el puerto 3306 por defecto.

Ahora ya tenemos una conexión definida, lo que tenemos que hacer es seleccionar nuestra base de datos que habíamos creado, ir a la opción “Query” y escribir el siguiente script:

Ahora solo nos queda ejecutar

Ya tenemos nuestra tabla “Contacto” creada, asegúrate de que tenga este aspecto:

Escribiendo código…

Conexión a la base de datos

Lo primero que vamos hacer es crear un archivo database.php; este archivo contiene una clase de PHP llamada "database". Esta clase se encarga de todo el manejo de la base de datos, como la conexión y la desconexión.

Como puedes ver, estamos utilizando PDO para el acceso a la base de datos, hay un montón de beneficios de usar PDO. Uno de los beneficios más significativos es que proporciona un método uniforme de acceso a múltiples bases de datos.

Para utilizar correctamente esta clase, necesitarás poner valores correctos para las variables $dbName, $dbHost, $dbUsername, $dbUserPassword.

  • $dbName: El nombre de la base de datos que le pusiste al momento de crearla.
  • $dbHost: El valor que tiene la variable fuente que vemos en la cadena de conexión.
  • $dbUsername: Nombre de usuario que vemos en la cadena de conexión.
  • $dbUserPassword: Contraseña que vemos en la cadena de conexión.

La función connect() es la principal de esta clase. Utiliza patrón singleton para asegurarse de que exista una sola conexión PDO en todo el website, dado que es un método estático. Para crear la conexión a nuestra base de datos vamos a utilizar Database::connect().

Crear una tabla utilizando Bootstrap

Para este ejemplo también vamos a utilizar bootstrap para darle una bonita cara a nuestro website.
Yo estoy la version 2.3.2, pero tú puedes utilizar cualquier versión, sólo debes descargarlo y copiar las carpetas a la carpeta donde está tu proyecto.

Ahora vamos a crear un archivo index.php y escribir el siguiente código:

Vamos a sumergirnos en el código.

La parte del head de este archivo es fácil, sólo incluimos la ruta de los archivos ccs y javascript que descargamos.

De la línea 18 a la 40 es la parte principal del archivo. Es donde recuperamos los datos de base de datos y lo mostramos en la tabla.

También vemos un botón que conduce a la página "Registrar Contacto" y también un enlace para ver el detalle del contacto.
Finalmente obtenemos lo siguiente:

Creando la página “Registrar”

Crear un archivo registro.php; este archivo contiene un formulario HTML y es la parte "Registrar Contacto" de la página principal. Vamos a ir a sumergirnos en este archivo en dos partes.

La primera parte del código es un formulario html. Es bastante sencillo, todo lo que hace es crear un formulario html. Para que sea un website digno, tenemos que proporcionar la validación de entradas de formulario. Por lo tanto crearemos una variable PHP para cada campo, esto es necesario para el reporte de errores de validación.

La segunda parte es donde sucede la magia, aquí se maneja el proceso de creación del registro y el control de los errores de entrada, alertándonos cada vez que ingresemos un campo vacío o en un formato incorrecto para el caso del correo.

Finalmente puedes conseguir algo parecido a esto:

Creando la página detalle

Ahora vamos a crear un archivo detalle.php; este archivo es la parte "Detalle" de la página principal. Haciendo una comparación con "Registrar Contacto”, esta parte es bastante sencilla.

Si miras la parte inicial del código PHP, te darás cuenta que lo que hace es asignar a una variable el parámetro que recibe por get con la siguiente función $_GET ['id'].
Si no lo encuentra, redirecciona a la página principal. De lo contrario, leerá los datos de la base de datos utilizando el campo "IdContacto" y almacenar datos en una variable llamada $data.
La siguiente parte, que es la parte html estática, es bastante simple. Sólo se imprime la variable $data.

Finalmente tienes que lograr conseguir algo parecido a esto:

Accediendo a mi website vía FTP

Ya estamos en la última parte, aquí vamos a acceder a nuestro website remotamente utilizando una herramienta muy conocida para hacer conexiones remotas vía FTP. La herramienta que yo utilizo es FileZilla, pero te vuelvo a decir que puedes usar cualquier herramienta, la decisión es tuya, tú eres el genio ;)

Antes de empezar primero tenemos que obtener nuestras credenciales para poder acceder vía FTP, para eso vamos a nuestro panel de administración de Azure en la opción “Dashboard” buscamos el enlace que dice “Descargar perfil de publicación”


Ahora abrimos este archivo con cualquier editor XML que deseemos y buscamos el nodo con nombre “publishProfile” y dentro de este la propiedad publishMethod="FTP". Aquí copiar el valor de las propiedades publishUrl, userName yuserPWD y copiar estas credenciales.
En mi caso yo utilizo Visual Studio como puedes apreciar:

Ahora sólo tienes que abrir FileZilla y copiar esas credenciales en los lugares que se indican:

Finalmente en la parte izquierda de FileZilla ubicar la carpeta donde has trabajado este ejemplo y arrastrar los archivos hacia la parte derecha que son los que están en Azure.

Ahora puedes acceder a tu url que tiene esta forma: http://tupagina.azurewebsites.net y podrás acceder a tu nuevo website.

Conclusión:

Hemos visto cómo desplegar una aplicación escrita en PHP, haciendo las operaciones básicas, pero si eres observador te habrás dado cuenta que sólo hay dos letras de las 4 que tiene “CRUD”, en nuestro caso sólo hicimos la “C” de Create y la “R” de Read. Ahora tú tienes la potestad de hacer las otras dos que faltan que son de Update y Delete.
El código fuente de este ejemplo se encuentra disponible en GitHub, en este enlace:
https://github.com/wilsonvargas/phpejemploazure

Y el ejemplo real se encuentra alojado en esta dirección:
http://phpejemploazure.azurewebsites.net/

Eso es todo por ahora, nos leemos pronto.

Un chico con una gran experiencia en el arte del desarrollo software. Desarrollador de aplicaciones de móviles, especialista en ASP.Net, Xamarin y tecnologías de computo en la Nube en especial Azure.

Comentarios