Throttle en Laravel

Rutas en Laravel parte 2: prefijos, fallback, límite de tasa y formularios

Continuación de la explicación de las rutas en Laravel 5.7

Ya vimos la introducción a las rutas en Laravel, en donde exponemos las cosas más importantes y comunes. Este post es la continuación del anterior, y ahora vamos a ver:

  • Prefijos en las rutas para agruparlas
  • Ruta de fallback cuando no se encuentra alguna ruta que coincida con la petición, algo así como manejar un error 404
  • Límite de tasa para limitar las peticiones, usando el middleware de throttle
  • Generación de los verbos HTTP dentro de formularios, por ejemplo PUT, DELETE o esas cosas

Son cosas un poco más avanzadas pero nada imposible de entender.

(más…)

Anatomía de un mensaje de log en Laravel 5.7

Laravel: Loguear errores y mensajes a archivo de log con Monolog

Aprendiendo a loguear errores y mensajes con Laravel 5.7

Hoy vamos a ver una cosa imprescindible en toda aplicación web: el logueo de mensajes o errores dentro de un log.

Laravel, el framework más poderoso de PHP (según yo), viene con el logueo de errores configurado por defecto y permite loguear errores de cualquier tipo en pocas líneas gracias a Monolog.

Anatomía de un mensaje de log en Laravel 5.7

Anatomía de un mensaje de log en Laravel 5.7

Por cierto, si no quieres loguear con Laravel y quieres usar el lenguaje puro, mira este post: Loguear mensajes de error y debug a archivos con PHP.

(más…)

Consultar datos de una tabla usando un cursor - PDO, PHP y MySQL

PHP y PDO parte 2: iterar con cursor y comprobar si elemento existe

Continuación de PDO con PHP para trabajar con bases de datos

En otro post ya hemos visto las bases para trabajar con PHP, PDO y MySQL (también SQLite). Ahora veremos dos cosas que vienen de ayuda al trabajar con PDO:

  1. Seleccionar datos y recorrerlos con un cursor en lugar de obtenerlos como arreglo
  2. Comprobar si un elemento existe en la base de datos
Consultar datos de una tabla usando un cursor - PDO, PHP y MySQL

Consultar datos de una tabla usando un cursor – PDO, PHP y MySQL

El primer punto viene de maravilla cuando hablamos de rendimiento. El segundo sirve para muchas cosas, por ejemplo, ver si un usuario ya existe al registrarse o cosas de esas.

(más…)

Explicación de hoja de cálculo para leer con PHP

Leer archivo de Excel con PHP y PHPSpreadSheet

Obtener contenido de hoja de cálculo con formato XLSX en PHP

Ya vimos cómo escribir a una hoja de cálculo usando PHPSpreadSheet; hoy veremos el proceso “inverso” y es leer el contenido de todo un documento de Excel.

Lo que haremos será leer todas las hojas (llamadas sheets) de un documento con extensión XLSX, así como iterar por todas las filas y leer cada celda de tres maneras:

  1. Valor crudo
  2. Valor formateado
  3. Valor calculado

Esta última manera permite calcular la fórmula en determinada columna y celda; pues si solamente obtenemos el valor crudo se mostrará la fórmula, no el resultado de la misma.

También vamos a ver cómo obtener la fila (es decir, el número, como 1) y la columna como letra (es decir, algo como A o B).

(más…)

Acesso prohibido a logs creados con PHP

Loguear errores y mensajes en PHP en archivo de texto con un logger

Crear un simple logger en PHP para depurar y escribir errores en archivo de texto

Depurar nuestro código de PHP es uno de los pasos más importantes de la programación. Una gran ayuda que tenemos a nuestra disposición son los logs o archivos de log.

Hoy veremos cómo escribir mensajes de error y depuración (o debug) en archivos de texto usando PHP sin usar librerías externas, únicamente funciones nativas y un poco de código al inicio de nuestro script.

Gracias a esto podremos escribir mensajes de información y también llevar un registro de errores sin mostrarlos al usuario, con fecha y hora de llamada así como el script de llamada.

Un ejemplo del log que vamos a crear (esto dependerá de tu app pero para que te des una idea) es este:

Veamos entonces cómo loguear con PHP, además de evitar mostrar los errores al usuario, asegurando nuestras aplicaciones web.

(más…)

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar la descarga de cualquier archivo con PHP y readfile

Obligar descarga de un fichero sin importar su extensión

Cuando un navegador web visita un archivo que entiende, lo muestra. Por ejemplo, si encuentra un archivo con extensión .txt entonces lo sirve en lugar de mostrar el diálogo de descarga.

Pues hoy veremos cómo servir un archivo con PHP pero forzar su descarga sin importar la extensión. No importa si es un exe, html o txt, todo será forzado a descargarse.

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar descarga de archivo con PHP y encabezados HTTP

Para esto usaremos la función readfile.

Este tutorial me recuerda al que muestra cómo proteger el acceso a imágenes con Apache y PHP.

(más…)

Unir o combinar archivos PDF con PHP y libmergepdf

Los documentos PDF son parte importante en el mundo digital. Gracias a ellos podemos tener acceso a la información en un formato unificado y entendible por la mayoría de sistemas operativos.

Hoy veremos cómo unir muchos documentos PDF con PHP. Es decir, podemos unir 2 o más PDF’s con PHP. Esta operación también se conoce como merge o como combinar múltiples PDF.

Combinar múltiples documentos PDF con PHP y libmergepdf

Combinar múltiples documentos PDF con PHP y libmergepdf

Aparte de ver cómo combinar o unir PDFs con PHP veremos 3 maneras de mostrar el documento final combinado: mostrar en el navegador, forzar su descarga o escribirlo en un nuevo archivo PDF.

(más…)

Adaptar proyecto de PHP a Composer

Composer se ha convertido en el gestor de dependencias más usado en PHP. Puede que nuestro proyecto de PHP existente no necesitara un gestor al inicio, pero ahora lo necesita. O tal vez necesitamos instalar una librería que usa composer.

Por ello es que hoy veremos cómo adaptar un proyecto normal de PHP a un proyecto gestionado por composer.

(más…)

Página web de parzibyte.me renovada

He renovado mi página principal y ahora es open source

Justo hoy he publicado mi página principal totalmente renovada y hecha por mí, además de que es totalmente open source (he puesto el repositorio en línea).

Ya era hora, pues no estaba mostrando mi portafolio y la última actualización fue en diciembre del 2017.

Página web de parzibyte.me renovada

Página web de parzibyte.me renovada

Voy a explicar en este post cómo fue la creación y las cosas que usé para crearla; además de exponer cómo hice para que cargara rápido y otras cosas.

(más…)