Ir al contenido principal

Entradas

¿Vale la pena construir tu propio framework en PHP?

¿Por dónde comenzar para construir un framework PHP?¿Por qué hacer uno cuando ya existen muchos y muy buenos?¿PHP?¿En serio? Todas estas preguntas son muy validas y espero que podamos resolverlas en las siguientes líneas. Comencemos con el " elefante " en la habitación (el que lo entendió, lo entendió).  ¿Por qué PHP? PHP sigue siendo un lenguaje muy usado, de fácil aprendizaje y ofrece todo lo que una aplicación Web puede requerir. Si tu aplicación Web va a requerir alto tráfico (y no, unos cientos de visitas al día no da para considerar como “alto tráfico”), está más orientada a lo que muestra ( frontend ) que lo que tiene por procesar ( backend ) o requiere un modelo distribuido a nivel mundial como el buscador de Google, quizás requieras otro modelo de desarrollo, pero para aplicaciones de baja o media complejidad, PHP es más que capaz de ofrecer una solución satisfactoria. Al final del día, no todo tiene que incluir Data Analytics o Inteligencia Artificial , por más...

Mejora tus sentencias SQL para búsquedas usando PHP

En este artículo vamos a abordar una revisión rápida a la forma en que se realizan las búsquedas de datos en bases de datos. ¿Quién no se ha sentido frustrado al usar el buscador en una página o aplicación y descubrir que el sistema no te entrega la información que esperas? A mi me pasa y más seguido de lo que esperaría. Desde buscadores que no hacen búsqueda separada por cada palabra ingresada, hasta aquellos que arrojan en los primeros lugares aquellos resultados menos relevantes. Esto usualmente se debe a pobres implementaciones de los querys de búsqueda. Un query es una sentencia o instrucción dada al motor de base de datos para que realice una acción, en nuestro caso particular, una búsqueda de datos. Los querys deben seguir una sintaxis predeterminada por un conjunto de reglas denominadas SQL , que es el lenguaje usado tradicionalmente para realizar consultas en muchas bases de datos relacionales como MySQL, PostgreSQL, Microsoft SQL Server, Oracle, etc. Para ilustrar nu...

Descubre cuánto tarda en ejecutar tu script PHP

Para que una aplicación web o de escritorio sea satisfactoria, no basta solamente con que cumpla con los requerimientos de diseño, debe hacerlo de forma eficiente en cuanto al consumo de recursos y de tiempo, cosas que muchas veces están vinculadas, muy vinculadas. Una aplicación web con alto consumo de recursos puede redundar en costos adicionales para el proveedor del servicio, por ejemplo, pagando un mayor precio por uso adicional de CPU en servidores bajo demanda del tipo Amazon AWS o Microsoft Azure . Por otra parte, el tiempo medio de carga de una página web es de 2,5 segundos en computadores de escritorio y de 8,6 segundos en dispositivos móviles (de acuerdo a un estudio publicado en tooltester.com ), de forma que una página que tarde más que eso aumenta el riesgo que el usuario se lleve una experiencia poco satisfactoria y pueda conducirlo a abandonar la consulta o en el peor de los casos, a cambiar su proveedor del servicio. Es muy posible que al dedicar un poco de tiem...

Gestión de perfiles y permisos en aplicaciones Web

Cuando se desarrollan aplicaciones web (o de escritorio si es del caso) que requieren manejo de usuarios, una de las características más comunes a incluir es la de asignar permisos a cada usuario dependiendo de su rol o perfil dentro de la aplicación. A continuación se describen algunas sugerencias para una correcta administración y asignación de estos permisos. Comencemos por establecer el comportamiento de estos llamados “ permisos ”. Básicamente, se trata de permitir a un usuario el poder acceder a una característica como por ejemplo el editar registros de una tabla particular, por ejemplo “ inventario ”. Así, un usuario que tenga en su perfil asignado el acceso a “ inventario/editar ” podrá hacerlo, en tanto aquel que no lo tenga, no podrá realizar esta actividad. Así las cosas, podemos relacionar el permiso con un menú asociado, en este caso “ inventario/editar ”, igual puede hacerse con “ inventario/listar ”, “ inventario/adicionar ”, “ inventario/asignar-responsable ” u otras a...

Caché de datos propios para agilizar ejecución de scripts PHP

De vez en cuando viene bien ayudar a PHP a generar respuestas de forma mucho más rápida y eficiente de lo que ya es capaz por si mismo. En mi opinión, la mejor forma de hacerlo es implementar un sistema de caché propio o (una opción un tanto más aburrida) reutilizar alguno ya existente. En este artículo detallaremos la implementación de una clase que permita este cometido. Aviso: Este artículo contiene ejemplos de programación en PHP aunque los conceptos explicados pueden ser aplicados a scripts realizados en cualquier otro lenguaje de programación. Para ilustrar este proceso, veamos el siguiente caso no tan hipotético: Una aplicación web hace uso de una API del clima. El resultado de la consulta es la misma para todos los usuarios y cambia solamente cada hora. Sin embargo, cada consulta tarda un tiempo promedio de 15 segundos. Esto implica que cada usuario deberá esperar esos 15 segundos para ver el resultado (sumado al tiempo que tome la visualización y otros procesos que deba real...

Sesión de usuarios en aplicaciones web

Uno de los módulos más importantes y a la vez menospreciados cuando se aborda la tarea de crear un sitio web de servicios, ya sea para una intranet corporativa o un sistema de gestión de información ( SGI ) es la gestión y administración  requerida para una correcta implementación de sesiones de usuario. Y es que llevamos tanto tiempo usando usuarios y contraseñas en Internet, en cualquiera de sus muchas variaciones, que se asume muchas veces que esto ya forma parte del ADN de toda solución web y como tal, se destina muy poco tiempo y estudio a este apartado cuando se planifican las actividades de desarrollo. Lo cierto es que cada aplicación acostumbra desarrollar su propio esquema de manejo de sesiones y asumir que es algo superfluo puede equivaler a “pegarse un tiro en el pie”, especialmente cuando un módulo de este tipo se diseña desde ceros. Al referirse al manejo de sesiones de usuario suele pensarse únicamente en el proceso de capturar el nombre de usuario ( username ) y su ...

Configurando el servicio PHP

En el capítulo anterior ( PHP con Apache sobre Windows ) vimos como configurar PHP para ejecutarse desde un servidor web usando Apache. A continuación veremos los elementos a configurar directamente en PHP para garantizar una ejecución responsable y sin tropiezos de nuestros scripts. Algunos se preguntarán ¿ por qué  molestarse en configurar manualmente PHP cuando frameworks como Laravel  ya te entregan un docker con todo preinstalado y preconfigurado? Bueno, la verdad prefiero tener control de qué está ejecutándose en mi maquina y no me gusta, en lo particular, requerir de un entorno propietario para cada aplicación desarrollada cuando puedo tener uno para todas y no desperdiciar espacio en disco , memoria y/o procesador  ejecutando en cada proyecto un servidor wen y/o PHP por separado. Si, se que muy probablemente soy una minoría en este aspecto, mea culpa . Y en segundo lugar, nunca se sabe cuando tendrás que entrar y ajustar tu configuración de PHP, así que cua...