PHP no muestra los errores en Linux: solución

Hoy te voy a mostrar una posible solución al problema de que PHP no muestra errores cuando se ejecuta en un servidor Linux (en mi caso fue con un derivado de Debian).

El problema es simple: PHP no muestra ningún error incluso aunque lo haya, es decir, no imprime ningún error en el navegador web, pero sabemos que el error debería estar ahí.

En otras ocasiones muestra un error 500 pero no muestra ningún mensaje explicativo.

(más…)

API REST con autenticación en Laravel

En este tutorial te voy a mostrar cómo crear una API REST en Laravel usando Laravel Passport. Gracias a esto podrás exponer tu API y consumirla con JavaScript (para una app web del lado del cliente) o con una app móvil y cualquier lenguaje que hable HTTP con JSON.

Lo interesante es que además de configurar una API JSON en Laravel, vas a aprender cómo agregar autenticación; de este modo los usuarios podrán iniciar sesión, recibir un token y luego usarlo para realizar las otras operaciones.

Verás que es muy sencillo. Al final del post colocaré unas pruebas de consumo de la API con Postman.

(más…)

Proteger directorio raíz de Laravel

En este post te mostraré cómo proteger el directorio de una aplicacón web de Laravel para evitar que un usuario acceda al archivo .env o a otros archivos.

Como sabes, cuando usas Apache para servir una app de Laravel, se puede acceder a todo el proyecto desde la web, no solo al directorio public. Por lo tanto, cualquier usuario podría acceder al archivo .env o a otros.

Es por eso que veremos cómo proteger una app de Laravel servida por Apache; ya que si, por ejemplo, la sirves usando artisan serve o con algo como Homestead, este paso no es necesario.

(más…)

Sistema de ventas con Laravel, Bootstrap y MySQL – Open source

Hoy voy a presentar un sistema que acabo de hacer con Laravel. Se trata de un sistema de ventas, punto de venta, PDV o como le llames, que sirve para llevar el seguimiento de los productos que se venden, el registro de ventas, etcétera.

Es un sistema totalmente gratuito y además open source; lo que quiere decir que puedes usarlo sin costo, y modificarlo a tus necesidades o personalizarlo. Entre sus opciones encontramos:

  • Utiliza Laravel en su última versión (a la fecha de escribir esto)
  • Bootstrap es usado para los estilos
  • Iconos de FontAwesome
  • Sistema totalmente responsivo, es decir, funciona en móviles, tabletas y computadoras
  • Control de inventario con precio de venta, precio de compra, utilidad, existencia, etcétera
  • Opción para realizar venta, agregando productos
  • Comprobación de existencia de inventario al vender
  • Resta de existencia al vender
  • Impresión de tickets de venta en impresora térmica
  • Reporte de ventas
  • Inicio de sesión y registro de usuarios
  • Gestión de usuarios (novedad)
  • Registro de clientes (novedad)
  • Ticket que incluye el nombre del cliente (novedad)

Ahora veamos cómo está hecho, en dónde obtenerlo, etcétera.

(más…)

Formatear dinero en PHP

En este post de PHP te mostraré cómo darle formato a la moneda o dinero en PHP. No será algo complejo ni algo que use librerías, simplemente haremos que se formatee colocando comas en donde se debe, así como puntos decimales.

Vamos a usar la función number_format. Al final vamos a lograr que algo como 12225 se convierta en algo como $12,225.00.

(más…)

CRUD Laravel usando Resources, Controllers, Models y Migrations

Crear un CRUD de Laravel generando código con artisan

Este es un tutorial que se basa en mi experiencia con Laravel. Te mostraré cómo crear un CRUD de cualquier entidad en pocos minutos, es decir, de manera muy rápida, usando:

  • Resources
  • Controllers
  • Models
  • Migrations

Todo esto usando artisan para generar el código. Verás que una vez que lo sepas, dejarás que artisan genere el código base.

Esto es un tip de productividad con Laravel.

(más…)

Especificar nombre de tabla en Laravel

Cuando usamos Laravel y los modelos del mismo, se crea un nombre de tabla (que será creada en la base de datos) que no siempre será correcto, sobre todo si está en idioma español.

Por ejemplo, yo tenía un modelo llamado MensajeIndividual pero el nombre de la tabla estaba como mensaje_individuals.

Hoy veremos cómo cambiar el nombre de la tabla en el modelo y en la migración (en caso de que exista).

(más…)