PHP

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.

Symfony: registro de usuarios, reset password, login..

2021-10-02 - Categorías: CSS / General / HTML / PHP / Symfony

¡Hola de nuevo! Esto es un codekata, esta vez para páginas web construidas con Symfony, con registro, autenticación y autorización de usuarios. Se trata de un clásico para generar toda la estructura necesaria para crear desde cero un proyecto funcional en unos minutos.

Hasta la versión 4 de Symfony teníamos vendors, como FOSUserBundle, con lo que estas cosas de registros de usuarios venían hechas. Ahora a partir de la versión 5 de Symfony también, tenemos de casa componentes para integrar estas cosas, generando códigos y configuraciones en pocos minutos.

Vamos al grano y lo vemos?¿ 😎👍

Continuar leyendo..

API Platform, Symfony: añadiendo funcionalidades fácilmente

2021-09-12 - Categorías: General / PHP / Symfony

Jugueteando con esta joya del software, la API Platform, podemos construir una API Restful en muy poco tiempo. Lo siguiente que podemos necesitar es disparar acciones cuando ocurren cosas con los elementos de la API. Pero no vamos a editar las acciones de GET, POST, PUT, PATCH o DELETE, porque esto viene hecho, y es estándar su comportamiento. Si no que vamos a engancharnos a los eventos de dichas acciones, a post-procesar la información o a implementar nuevos endpoints en este post.

Es decir, una API Restful puede ser una cosa bastante simple, en la que sólo almacenamos información que podemos editar remotamente. Se pueden añadir puntos de entrada con lógica nueva y controlable desde el exterior. Pero es más interesante, que después de recibir peticiones, hagamos tareas aparte de las básicas CRUD: crear, listar, actualizar y borrar.

Por lo menos tenemos tres formas de lanzar estas acciones nuevas:

  • Añadiendo nuevos puntos de entrada para procesar, no recomendable.
  • Programando tareas que se ejecuten cada cierto tiempo.
  • Enganchándonos a los eventos de la API en las peticiones.
Continuar leyendo..

Refactorizando un Singleton usando Static

2021-09-07 - Categorías: General / PHP
PHP-testing-POST

Uno de los patrones de diseño del software que tenemos disponible es el Singleton. Según las buenas prácticas es un patrón del que tenemos que huir, porque viola varios principios del desarrollo. Para más información me remito a los principios STUPID vs SOLID.

Según podemos encontrar por Internet, hay un gran debate entre usarlo o no. Sólo se ve que sea la buena opción cuando necesitamos usar un sistema de cacheado de la información de forma global, registros de información global o sistemas en los que manejamos procesos debiendo controlar su cantidad.

Una forma de salvar la situación es el uso de Static en favor de tener información global, mejorando así también el rendimiento, aunque la idea de Singleton es subyacente a la forma de uso de Static. Otra forma de salvar la situación, es controlar la creación del objeto externamente, no internamente en la clase, delegando esta responsabilidad.

Continuar leyendo..

PHP: clase estándar para crawlear webs o consultar APIs RESTful

2021-08-09 - Categorías: PHP
Networking Earth

Este post es un howto o codekata para consultar sistemas remotos en PHP mediante CURL. Podemos encontrar que con muy pocas líneas consultamos una página web, igualmente a como hacen nuestros navegadores, aunque sin visualizarlas.

De esta forma, podemos conectar con sistemas remotos como APIs RESTful, no sólo websites, y lo que es cada vez más habitual, para interactuar o construir aplicaciones distribuidas entra varios servidores conectados a una red. También se puede usar para crawlear websites así como hacen los principales buscadores o herramientas SEO..

Este post se puede complementar con este otro post sobre APIs RESTful.

También con este otro con algo sobre refactorización.

Continuar leyendo..

Symfony: priorizando la carga de rutas

2021-08-07 - Categorías: PHP / Symfony
Herramientas Symfony

Pequeño howto sobre el problema del orden en la carga de rutas en Symfony. Me costó un poco encontrar la solución, así que aquí me hago eco del problema con la solución.

El problema consiste en que varias rutas pueden entrar en conflicto por el orden de la carga de forma automática. Esto ocurre cuando hay rutas dinámicas, en las que en la ruta se usan valores dinámicos, para después hacer algo en los controladores.

Continuar leyendo..


Creando una API Restful con la API Platform desde cero

2021-07-04 - Categorías: HTML / JavaScript / PHP / Symfony
API Platform filtering

Aquí llega otro sencillo codekata o howto para crear una API Restful en PHP, from scratch, en pocos minutos, sobre Mysql o Mariadb, y usando esta joya del software llamada API Platform.

A esta API se le puede conectar cualquier otro software como una aplicación en React, Angular, WordPress, Magento.. aplicaciones hechas en varios lenguajes como Java, Python, PHP, JavaScript, etcétera. Estas APIs son una forma de conectar sistemas de forma totalmente estándar.

Este post es continuación de este sobre crear APIs a partir de proyectos funcionales, o complemento de este otro sobre cómo filtrar elementos en la API Platform. También se complementa con este post posterior sobre PHP y una clase estándar para consulta de APIs.

Continuar leyendo..

PHPLOC, una alternativa a PHP Depend para medir la calidad del código fuente

2021-07-03 - Categorías: General / PHP

Siguiendo con las herramientas de medición de la calidad del código fuente del post anterior, encontramos que tenemos disponible una alternativa a PHP Depend, que tiene funciones parecidas. Se trata de PHPLOC de Sebastian Bergmann, que te puede sacar unas métricas muy descriptivas en modo texto de todo un programa.

Es bien sencillo de usar y los resultados son bien descriptivos por si mismos. Vamos al grano..

Continuar leyendo..

Analizando la calidad del código fuente con PHP Depend

2021-06-26 - Categorías: General / PHP

Hay muchas herramientas para medir la calidad del código fuente. Una de estas es PHP Depend, que del mismo modo que JDepend para Java, analiza los códigos fuentes, y nos da una visión del estado del código sin entrar al detalle.

Este es un pequeño HOWTO para instalarlo en un proyecto y empezar a usar esta herramienta.

Continuar leyendo..

IA: cómo montar un Sistema Basado en Reglas con PHP

2021-05-30 - Categorías: Inteligencia Artificial / PHP

Realmente no hacen falta complejos sistemas informáticos para montar inteligencias artificiales, o más bien, para aplicar inteligencia artificial a la resolución de los problemas.

Aquí tenemos a modo de codekata, un sencillo howto hecho 100% en PHP, para montar una pequeña IA. Un Sistema Basado en Reglas, es una de las formas más sencillas de aplicar inteligencia artificial a la resolución de problemas. Los SBR son Sistemas Expertos, que comenzaron a usarse por la comunidad a mediados de 1960, con lo que tienen su recorrido..

Continuar leyendo..

Comparando algoritmos de búsqueda en grafos

2021-05-24 - Categorías: Inteligencia Artificial / PHP
Comparando el AGBG con anchura, profundidad, BF y A*..

Aquí puedes encontrar un howto o codekata en PHP, en el que se comparan algunos algoritmos de recorridos de grafos. Este post es continuación del post anterior sobre el algoritmo general de recorrido en grafos.

A partir del algoritmo general, tenemos derivados cuatro algoritmos más. Dos de estos algoritmos son de los básicos, y dos aplican técnicas heurísticas. Los heurísticos tratan de predecir qué camino usar primero para alcanzar antes el nodo meta.

Continuar leyendo..

El algoritmo general de búsqueda en grafos

2021-05-17 - Categorías: Inteligencia Artificial / PHP

Este post es sobre una algoritmo que es la madre del cordero de muchos algoritmos de búsqueda 🤣 Se puede considerar un algoritmo base para búsquedas, sobre el que se puede evolucionar hacia otros algoritmos. No he encontrado su implementación en PHP, así que aquí estoy compartiendo, a modo de codekata, este howto.

Este algoritmo general de búsqueda en grafos, es un algoritmo elaborado para solucionar problemas inteligentemente representados mediante grafos. No aplica ninguna predicción sobre los siguientes caminos a seguir mientras se hace la búsqueda, pero tampoco es un algoritmo de fuerza bruta.

Lo propuso Nilsson en 1971, así que tiene ya su recorrido. A partir de éste se han generado todo tipo de mejoras, heurísticas, desembocando en todo tipo de variantes que mejorarán el rendimiento como por ejemplo el A*, IDA, SMA*, Dijkstra, etcétera..

Continuar leyendo..

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.