PHP

131 entradas

Drupal review

Drupal, un pedrusco de oro en la mina de los CMSs

Este CMS reluce como el oro por fuera, y por dentro es oro puro, una joya del software 😉 Es uno de los mejores CMSs Open Source que tenemos disponibles para los proyectos. Hoy os traigo una review, tratando de remarcar el porqué es uno de los más usados en el mercado, sobretodo en proyectos complejos para universidades, gobiernos y en las empresas más tecnológicas. Es uno de los CMS que hay que conocer. Espero resumir bien las principales características, sobre todo desde el punto de vista de un programador 😎 aunque trataré también temas para marketeros y agencias. Es uno de los más flexibles y escalables. Inicialmente tenía su propio framework, pero luego comenzó incorporando Symfony 2, y en las últimas versiones viene incorporando Symfony 3. Ya está integrado con Composer. Internamente, prioriza las mejores técnicas de desarrollo para garantizarte una solución robusta para tus proyectos. Externamente, es de lo más personalizable sin tener que invertir demasiado tiempo. Tiene un gran ecosistema de configuraciones, temas y módulos disponibles. Sobre todo una gran comunidad de desarrolladores con casi 50000 módulos y casi 3000 temas disponibles a fecha de hoy, en el marketplace de Drupal.org.

EasyAdmin generando a partir de la BD

Generando un panel de control en pocos minutos con EasyAdmin en Symfony

¡Hola! Jugando y jugando, probando software, aquí que vengo de nuevo y os traigo un codekata en Symfony. Es para hacer ingeniería inversa de cualquier proyecto en el que tengas una base de datos. También traigo una joya del software que se llama EasyAdmin, un bundle/componente para Symfony. Este codekata se puede aplicar a cualquier base de datos compatible con Symfony, más en concreto, con cualquiera compatible con Doctrine, que es el componente ORM que te conectará con la BD. Quizá tienes que hacer un panel de control que sólo acceda a la información X del proyecto, a ciertas tablas. También sirve para bases de datos completas. Podría ser un proyecto legacy, de un Symfony antiguo, un Magento, un ERP como Odoo con el que trabajar con Symfony, o un WordPress, un Prestashop, Drupal, etc.. Sea cual sea el proyecto la idea es la misma.

Wordpress multisite

WordPress multisite: una instalación, infinitos sitios web

Activar la opción de WordPress multisite te puede hacer muy eficiente a la hora de explotar esta herramienta profesionalmente. Por otro lado es brutalmente eficaz para mantener segura y estable a una red de sitios WordPress que tengas que mantener. Los clientes finales te lo agradecerán, ya que no tendrán que realizar tareas muy técnicas para asegurarse de que la web siga online. Y por otro lado no tendremos que recorrer cada sitio, uno a uno, para mantenerlos en buen estado. Puedes tener una única instalación de WordPress, pero con infinitas páginas web. Todos los websites se podrían administrar desde un panel de control principal. Y los usuarios podrían trabajar, o visitar cada sitio web, como si de sitios independientes se trataran. Una única instalación de WordPress que mantener actualizada, securizada, optimizada. Un sitio desde donde administrar los plugins y temas disponibles para toda la red de páginas web. Una sola instalación en un único servidor. Ahorrarás en costes de servidor, en costes de mantenimiento, menos problemas y más recursos para todos.

Logo de Wordpress

WordPress: el plugin más ligero y rápido para añadir código en el header de tus proyectos

¡Hola de nuevo! Aquí que ando poniéndome al día con WordPress, y traigo un simple codekata para hacer un plugin básico para WordPress. Con este plugin se puede añadir contenido en la cabecera del frontend. Podemos usarlo para añadir códigos de Google Analytics, Facebook, Twitter.. editar estilos o añadir librerías Javascript para modificar el frontend.. etc.. Se trata de un plugin básico del tipo ¡Hola mundo! para WordPress. Punto de partida para customizar el frontend en instalaciones de WordPress. Es tan sencillo, que con ficheros como este no necesitas crear una plantilla hija completa para empezar a personalizar el frontend. Tampoco necesitarás depender de otros módulos. Con lo que a base de pequeños plugins como este con tus personalizaciones, podrás instalar o desintalar los otros tantos módulos que hayas estado usando sin miedo a perder tus cambios 😎

Raspberry Pi & GNU/Linux: montando un sistema embebido con una interfaz web

Ya hace tiempo que no escribo con tantos problemas que está habiendo con el COVID19.. así que aquí estoy de nuevo tratando de no perder las buenas costumbres. Aquí que traigo un codekata para la Raspberry Pi. Se trata de un tutorial para montar un sistema embebido con una interfaz web en una Raspberry Pi. Imaginemos por ejemplo que la Raspberry maneja una serie de relés que encienden y apagan dispositivos, se podrían manejar desde una web. O imaginemos quizá que esta Raspberry te pudiera hacer una encuesta desde una tableta, y en función a tus respuestas, iluminar el café, chocolate o perfume de la tienda que más te va a gustar. O quizá quieres montar una API REST para interactuar con varias Raspberry que tenemos conectadas en la red de tu casa o local, para hacer algo más complejo. Así se podría coordinar las tareas en red que le corresponda a cada Raspberry, desde alguna unidad central. Si te parece interesante, sigue leyendo que este es tu post.. 😉

Symfony manejando los bounces y complaints

Symfony: cómo evitar ser SPAM controlando los bounces y complaints de tus emails

Hoy traigo un codekata bien cargado, sobre Symfony y los emails. Este post, junto con el anterior sobre cómo enviar muchos emails.. te dará el poder de enviar infinitos emails gratis. Pero un gran poder conlleva una gran responsabilidad 😀 o serás marcado como el supervillano de los emails, el SPAMMER 😱 Fuera de bromas, este es un post de pruebas, un codekata usando la última versión 5 de Symfony, con Symfony Flex, y Swiftmailer para el envío de los emails. Con este codekata podemos controlar que los emails que enviamos, lleguen a destino correctamente, para que no nos marquen como SPAMMERS. Evitamos así que nuestro servidor entre en listas negras de bloqueo. He elegido Symfony, el framework PHP de referencia para grandes proyectos web. También Swiftmailer ya que quería invertir poco tiempo, y viene muy bien integrado con Symfony 😜 La misma teoría y lógica también serviría para cualquier otro lenguaje como Java o Python.

GNU/Linux: optimizando servidores

AWS & GNU/Linux: optimizando aplicaciones web

Aquí estoy de nuevo dejando mi granito de arena en todo esto de la informática. Hoy traigo un howto para la optimización de servidores web. Simplemente, son unas propuestas de configuraciones totalmente estándar y disponibles en las documentaciones oficiales. Pero que mejoran mucho el rendimiento de aplicaciones web, hechas en lenguajes como HTML, CSS, Javascript, PHP, Java, Python, SQL, DQL.. Este post es para optimizar aplicaciones web del tipo WordPress, Prestashop, Magento, Drupal, Symfony.. etcétera. Es una visión general de cómo funcionan las cosas a bajo nivel. Digo a bajo nivel, porque están muy de moda las arquitecturas server-less, o los servidores auto-administrados, que también necesitan su optimización. Pero aquí nos remangaremos la camisa, y nos embarraremos hasta el cuello mientras que vamos investigando, aprendiendo y aplicando, para cada proyecto en concreto. Este es un post para los que nos gusta trabajar los servidores, para los que nos gusta ponernos manos a la obra, para experimentar nosotros mismos con los proyectos, rascando cada milisegundo para conseguir que todo vaya lo más rápido posible..

Symfony, enviando muchos muchos emails

Symfony: cómo enviar muchos, muchos, muchos emails gratis

Ya estoy por aquí otra vez. Hoy traigo un code-kata muy divertido, también peligroso 😱 si lo ejecutas sin medida, o sin configurarlo bien 😀 Pero estos códigos fuentes pueden hacerte ahorrar mucho dinero, a tí o a la empresa donde trabajes 🤑 No es una tarea complicada, simplemente se trata de enviar muchos emails, muchos, del orden de miles o decenas de miles de emails al mes. Esta es una tarea tan antigua como programar el propio envío de los emails dentro de los servidores de correo electrónico. Es decir, en este post tienes el cómo hay que programar el envío de emails, lo más profesionalmente posible. No sólo en Symfony con PHP, sino también para otros lenguajes de programación, y en otro tipo de aplicaciones. En CMSs como Magento por ejemplo, esto ya viene incluso construido y listo para trabajar, simplemente hay que usarlo. Pero si lo estas construyendo tú mismo, este es tu post 😉

Symfony entidades con el modelo de datos EAV

Symfony & EAV: cómo diseñar una BD para no tener que modificarla después

Estoy haciendo una especie de experimento con Symfony, se trata de un codekata para usar el modelo EAV. No he encontrado en Internet nada hecho en Symfony que hiciera exactamente lo siguiente, todo desde un panel de control, y quería aprender a crearlo. Así que aquí estoy, jugando con la programación, y compartiendo este codekata 😉 Me explico, viendo cómo están hechas por dentro la gestión de productos en CMSs como Magento, Prestashop o Drupal.. o en ERPs como Odoo.. vemos que internamente, podemos dar de alta tantos atributos de producto como queramos desde el panel de control. ¡Podemos dar de alta tantos atributos como queramos sin modificar la base de datos! ¿Cómo es esto por dentro que funciona? ¿No te ha pasado que mientras desarrollabas una aplicación tenías que añadir más y más columnas a una tabla? Si la cantidad de atributos va a ser muy cambiante, la forma más profesional y eficiente para programarlo se consigue usando el modelo EAV.

Symfony internacionalizando i18n traducciones

Symfony: tutorial 19: idiomas, internacionalizando, el Locale

Aquí estoy de nuevo con otro code-kata sobre Symfony. Este post es un repaso en Symfony Flex con respecto a la traducción de idiomas. Es decir, en este post voy a tratar de ser conciso, sin demasiados detalles, para tratar el tema de tener una página traducida en varios idiomas. Es decir, una vez más, siguiendo la planificación sobre el repaso a Symfony, que llegamos a un tema un poco complicado, la internacionalización, que abreviado es I18N. Con este post, si lo sigues mientras construyes tu proyecto, en cuestión de minutos podrás tener el esqueleto de una web multidioma totalmente funcional. Doy por sentado que llevamos bien el resto de temas como Doctrine, los controladores, el maker, diseño de bases de datos, etc.. Abordar la internacionalización de una página no es trivial.

Symfony Process lanzando procesos del sistema operativo

Symfony: tutorial 18: trabajando con el sistema operativo, Process

Continuando con la serie de tutoriales de iniciación a Symfony, aquí que vengo con el siguiente que me planifiqué repasar. Este tutorial trata sobre cómo lanzar programas del sistema operativo desde un proyecto Symfony. Es decir, si estamos en un sistema operativo GNU/Linux no hay nada que no podamos hacer en un servidor. O por lo menos no se me ocurre nada que no se pueda lanzar desde un proyecto Symfony. Me explico, si en un servidor GNU/Linux todo lo podemos hacer desde línea de comandos.. si todo lo podemos copiar, mover, lanzar procesos de todo tipo desde línea de comandos.. también podemos desde PHP con las funciones exec, shell_exec, passthru y system. Así mismo, tenemos también en Symfony un componente para usar estas funciones más fácil todavía. Es decir, este componente Process es un wrapper vitaminado para usar estas funciones de PHP.

Diseñando BDs con el creador de entidades de Symfony para Doctrine

Un lector me ha escrito sobre un tema muy interesante de Symfony. Así que aquí estoy de nuevo añadiendo material académico. Este post va sobre un post anterior, sobre Symfony, los modelos y entidades, de la serie de tutoriales de iniciación a Symfony Flex. Voy a tratar de explicarme mejor sobre el día a día con los comandos de consola mientras que vamos creando o editando una base de datos. Symfony te convierte en un programador web muy productivo, gracias en gran medida a los comandos de consola. Así que es muy recomendable conocerlos bien, practicar mucho, y saber usarlos. Es muy recomendable para sacarle provecho a este post el tener los conocimientos teóricos sobre diseño de bases de datos. Así pasarás del esquema de la base de datos, a crearla, en muy poco tiempo gracias al maker de entidades de Symfony. Pero es necesario que tengas claro cómo establecer las relaciones entre entidades, y de qué forma deben ser: de una a una, de una a muchas o de muchas a muchas.