PHP

116 entradas

PHP es el lenguaje de programación de mayor aceptación entre las aplicaciones web. La gran mayoría de los CMS orientados al mundo de la web están desarrollados sobre PHP.

Preparado para correr sobre un servidor web, aunque en mucha menor medida también se puede utilizar en entorno de terminal. Tiene una curva de aprendizaje muy baja, es muy permisivo con los errores, es interpretado, no compilado y orientado a objetos, entre otras cosas.

Aunque sea un lenguaje muy aceptado por los principiantes, es muy atacado por muchos experimientados en la programación. No obstante es uno de mis lenguajes preferidos. Y sobre todo, al desarrollar para la web, siendo prácticos, es una de las primeras y mejores soluciones balanceando entre el conjunto de lenguajes disponibles.

Logo de Wordpress

WordPress: generando al vuelo un fichero y descargándolo

Hoy vuelvo con otro howto o codekata para WordPress. Esta vez es para hacer una descarga de un fichero que no existe, a partir de una URL. Es decir, es una forma de generar contenido de un fichero al vuelo, en forma de fichero y darlo en descarga al navegador que visita WP. En vez de devolver contenido HTML, CSS y JavaScript desde el servidor al navegador que nos visita, devolvemos el contenido de un fichero y le decimos al navegador que nos visita que hay que descargar. Para hacer esto es simple la idea. Sólo hay que engancharse a un hook de WordPress antes de que se devuelva ninguna respuesta web normal al navegador. Entonces, si la URL de la petición es la que queremos, entonces devolvemos el contenido del fichero, y ponemos los HEADERS en la respuesta para que el navegador se descargue el contenido en forma de fichero.

Database

Actualizando la BD con un plugin de WordPress

Hoy traigo un codekata o howto para el desarrollo de plugins para WordPress, con una funcionalidad que me ha entretenido bastante el conseguir que funcione. Se trata de una forma de actualizar las tablas de la base de datos, a medida que vamos actualizando un plugin, y vamos modificando también la estructura o contenidos de la base de datos. Es decir, es un pequeño howto o tutorial para mantener versiones de la estructura y contenido de la base de datos, para un plugin de WordPress. Vayamos al grano..

Frontend Backend

Cómo hacer peticiones AJAX con JavaScript, desde cualquier frontend, al backend de WordPress

Una persona me ha hecho una pregunta sobre WordPress. Curioseando para responder al comentario, inspeccionando las llamadas con el Monitor de Red, me he dado cuenta de una funcionalidad muy interesante que nos brinda WordPress. Resulta que tenemos disponible otra forma de desacoplar el frontend de una instalación WordPress, pero seguir disfrutando del backend de WordPress. Podemos programar con esto en mente, para trabajar la información usando llamadas AJAX que ataquen al CMS. Rizando el rizo un poco, estas llamadas AJAX, incluso se podrían hacer desde otro tipo de programas que no fueran webs.. Es decir, tenemos un ‘endpoint’ con la ruta wp-admin/admin-ajax.php al que podemos atacar. Y a partir de este punto de entrada podemos crear plugins o themes, con lo que podemos programarle lo que queramos en la parte de backend. Por otro lado, en la parte de frontend, al atacar este endpoint podríamos así desacoplar más todo el frontend, y usar cualquier tecnología de frontend como podría ser Angular, React, Vue, etc.. o incluso otro tipo de programas de escritorio o aplicaciones nativas de móviles.

Heart pulse

Dale vida a tu WordPress, el programador de tareas

WordPress también dispone de un mecanismo para programar acciones en el tiempo, un programador de tareas, al que también podemos llamar el Cron de WordPress. En este post dejo unos howtos o codekatas muy sencillos, para lanzar estas acciones en el tiempo. He probado bien estas cosas en jnjsite.com, y les comparto aquí algunos resultados. Aparte de las formas de uso, dejo también algunos trucos para mejorar el rendimiento. También dejaré algunas referencias a la documentación oficial que está muy bien, para el que quiera seguir avanzando con el tema.. 😎

Android Chrome debug remote devices port forwarding

Cómo acceder a localhost dentro del emulador de Android

Dejo aquí un howto, un apunte resumen, para configurar el emulador de Android y poder programar accediendo a localhost, desde el dispositivo emulado. Se hace haciendo lo que se llama port forwarding en el dispositivo emulado desde ciertos puertos al host de nuestro sistema operativo. Esto sirve para probar Service Workers (PWAs) localmente, webs localmente, apps que accedan a servicios que estemos programando localmente, etc..

WP command line

WordPress: cómo hacer scripts de línea de comandos

Pequeño howto para lanzar scripts PHP desde línea de comandos y poder trabajar sobre WordPress. Es decir, esta es una técnica con la que, por ejemplo, podríamos hacer un recorrido de todos los posts de una instalación de WordPress, para hacer un trabajo entonces sobre cada uno de ellos. Esta forma de lanzar scripts es útil mientras que estamos contruyendo un plugin o theme. Así se pueden probar algunas funciones o pocas líneas de código, viendo sin funcionan, para luego cortar y pegar en donde tengan que ir.

WAF Web Application Firewall

Cómo empezar un cortafuegos en PHP

Este post es un sencillo howto para ejecutar un código, antes de cualquier ejecución en PHP en una aplicación web. Sirve para montar lo que se llama un WAF en la capa de aplicación, cuyas siglas significan Web Application Firewall. Así después, le podemos añadir toda la lógica que necesitemos. Con ésta técnica, en cada petición que se reciba en PHP, se ejecutará lo que pongas en el WAF antes de la ejecución de nuestra aplicación web.. 🧐

Objetos relacionados base de datos

WordPress: cómo crear una tabla para un plugin

Este es un pequeño codekata o howto para crear un plugin que cree una tabla en la base de datos. Como reza la documentación oficial, no se recomienda crear nuevas tablas para almacenar los datos, pero según que caso, puede ser la mejor opción, tendremos entonces que ocuparnos nosotros de su mantenimiento. El siguiente código simplemente es un esqueleto de plugin con el que se puede crear una tabla en el momento de la activación de dicho plugin. También cuando se desactiva el plugin se borrará dicha tabla.

Logo de Wordpress

WordPress: haciendo una plantilla de página

Este post es un codekata o howto sobre WordPress para hacer plantillas de páginas individuales. Es decir, tenemos lo que se llaman temas completos para el frontend de WordPress. En los temas de WordPress todo el diseño web viene definido, y a veces nos traen una serie de plantillas que se pueden asignar individualmente a cada página, a cada post, a cada contenido.. Estas plantillas de página, podemos además maquetarlas y programarlas para que tengan cierto aspecto visual. Podemos crear nuevas y definir nuevas estructuras. Por ejemplo, en el tema de Customizr que estoy usando actualmente en este blog, tenemos una plantilla de página que nos proponen, y podemos crear nuevas replicándola y editándola fácilmente.

Logo de Wordpress

WordPress: añadir taxonomías a los tipos de posts

Esto es otro codekata para WordPress, para añadir lo que se llaman taxonomías a los posts. Es decir, las taxonomías son al efecto como categorías, con las que podemos clasificar los posts. Me explico un poco más, dentro de WordPress, muchos de los contenidos son posts, están dentro de la tabla de la BD wp_posts. Se pueden dividir en tipos tal y como se puede ver en el post anterior, sobre cómo registrar tipos de posts. Y además, dentro de cada conjunto de tipos de post, éstos se pueden marcar con las taxonomías/clasificaciones.

Logo de Wordpress

WordPress: añadir tipos de posts

Apunte, resumen, tutorial, codekata para generar tipos de contenidos en el backend de un WordPress. En el origen de los tiempos todo eran Posts del mismo tipo.. xD ¡y se crearon los tipos de post! Con lo que ya podemos tener de base también las páginas, y podemos generar nuestros propios tipos de posts. Esto sirve para crear páginas de gestión de por ejemplo productos, servicios, locales, personal, etc..

Logo de Wordpress

WordPress no publica los posts a la hora programada

Este es un howto con la solución, a un problema que me ha costado un poco resolver en un WordPress que administro. Se publicaban los posts en otra hora distinta a la programada. Además, si le daba a publicar inmediatamente, se quedaba como programado para publicar, y se publicaba dos horas más tarde. No he podido encontrar casi información por Internet, al final encontré el porqué pasaba esto, y aquí que estoy compartiéndolo por si alguien lo necesita también 😉