Saltar al contenido

Categoría: Desarrollo y Programación

Cargar dinámicamente mixins distintos desde Vue router

Si estas haciendo aplicaciones con Vue.js es probablemente que estés usando los mixins para reutilizar el código. En algunos casos, existe la posibilidad de que tengas dos o más mixins con los mismos nombres de métodos pero implementando las funcionalidades de forma distinta. Pero solo necesites importar/inyectar uno solo en la vista actual. Entonces es necesario cargar dinámicamente mixins distintos desde el router dependiendo de la ruta.

Cómo cargar dinámicamente mixins distintos

En mi caso dependiendo de la ruta, necesitaba cargar código específico. Esto es para poder reciclar la vista, el cual llama a métodos con los mismos nombres en los distintos mixin. Como Vue.js 2 no soporta importar objectos de form dinámica, no podemos hacer los imports mediante una condición inicial. Así que la forma que encontré es pasando un nuevo componente que sea hijo (para heredar los atributos y métodos) de tu mixin. Defines en cada ruta, este nuevo componente y defines que herede el mixin correspondiente.

La solución a cargar dinámicamente mixins distintos es que Vue router permite en la sección de component pasar el componente que reutilizas (en mi caso el de la vista) y luego pasar en el atributo mixins, un arreglo con el mixin que debe usar esa vista.

A continuación puedes ver a qué me refiero:

{
      path: "/rutaA",
      name: "ComponenteA",
      component: {
        extends: ComponenteComun,
        mixins: [mixinA]
      }
    },
    {
      path: "/rutaB",
      name: "ComponenteB",
      component: {
        extends: ComponenteComun,
        mixins: [mixinB]
      }
    },

Con esto, cuando se entra a una ruta el router creará un nuevo componente con los métodos, atributos y observadores del componente a reusar. Pero como se está definiendo un mixin distinto a cada vista tendrán implementaciones distintas.

Espero que está guía te haya servido en tu proyecto informático. Si te gustó puedes compartirla o si deseas aportar algo a esta entrada, simplemente deja un comentario.

¡Gracias por leerla!

Deja un comentario

Mi top 10 de nuevas funcionalidades de PHP 8.1

Atrás quedaron los días donde PHP te permitía escribir código horrible. Desde la versión 7.0 se ha realizado cambios importantes al lenguaje y con la serie 8.0 ha mejorado aún mas. Actualmente PHP es un lenguaje maduro, con excelente sintaxis y características interesantes. Esta semana salió PHP 8.1 e incluye novedades interesantes. Varias nuevas funciones, tipos de datos, enumeraciones, entre otros. Ademas de ofrecer gran rendimiento respecto a versiones anteriores (creo que un 8% a 20% respecto a PHP 7.4).

Como son varias funcionalidades y hacer un artículo quedaría demasiado largo. Decidí hacer un vídeo explicando mis 10 características mas interesantes de PHP 8.1. Desde nuevas sintaxís, mejoras a la programación orientada a objectos, nuevas funciones y nuevos tipos de datos.

Así que a continuación te dejo el video del Top 10 de funcionalidades de PHP 8.1

Top 10 de caracteristicas de PHP 8.1

Hacer este video no significa que vaya a acabar con la modalidad de blog, si no mas bien es un experimento y otra alternativa de hacer llegar la información a ustedes. Si tienen comentarios para mejorar, problemas de volumen, legibilidad o algo similar. Por favor dejen su comentario para que en el próximo pueda mejorar la calidad del mismo.

Por lo tanto, espero que te haya gustado. Si te interesó recuerda compartirlo con tus amigos, suscríbete a mi canal en Youtube si quieres seguir viendo mas vídeos. Agradezco tu apoyo.

¡Ahora a actualizar a PHP 8.1!

Deja un comentario

Como usar Let’s Encrypt (versión de Docker) junto a un servidor web corriendo en Docker

Docker es una gran tecnología que nos permite correr los servicios en contenedores. De esta forma podemos aislar y manejar mejor nuestros entornos de desarrollo y producción. Hace unos meses tenía un contenedor de Docker con Nginx corriendo código en PHP y necesitaba agregar un certificado de seguridad. Pero no sabia como hacer para instalar Let’s Encrypt en la imagen sin modificarla para poder generar los contenedores.

Descubrí que existe una versión oficial para Docker. Con ella podemos ejecutar el comando certbot que se encarga de validar y generar los certificados para nuestro dominio web. Parte del proceso consiste en subir un archivo generado a la raíz del servidor web para que el servicio de Let’s Encrypt puede acceder remotamente y así validar que el dominio es nuestro. Pero por la naturaleza de los contenedores, es como complicado hacer que certbot suba archivos al contenedor del servidor web.

La solución para ello es utilizar volúmenes. Abrimos certbot y le indicamos que la ruta a subir el archivo sea la carpeta que se monta como volumen en el servidor web.

Docker + Let's Encrypt = Amor
Puedes combinar estas tecnologías para hacer sitios mas seguros.

Generar el certificado con el contenedor de Let’s encrypt

Para ello, puedes ejecutar el siguiente comando. Lo que hace es decirle a Docker que ejecute el comando de generación de certificados en las carpetas deseadas para el dominio definido y lo haga dentro de la imagen certbot/certbot que ofrece let’s encrypt. Recuerda agregar este comando al cron para que se ejecute por lo menos semanalmente o cada 3 días (me parece exagerado hacerlo diariamente)

/usr/bin/docker run -it --rm -v /CARPETA_CON_LOS_CERTIFICADOS:/etc/letsencrypt -v /CARPETA_SERVIDOR_WEB:/app certbot/certbot certonly -a webroot --webroot-path /app -d MI_DOMINIO

Recuerda sustituir en este comando las siguientes variables:

  • CARPETA_CON_LOS_CERTIFICADOS es la carpeta donde se van a guardar los certificados generados. La configuración de tu servidor web debe apuntar a este lugar.
  • CARPETA_SERVIDOR_WEB es la carpeta raíz del dominio dentro del servidor web. Es decir si subes un archivo llamado test.txt debería estar visible en midominio.extension/test.txt . De esta manera certbot puede subir el archivo que permite confirmar que eres dueño del dominio a asegurar con certificado.
  • MI_DOMINIO es el dominio público para el cual se crearán tus certificados de seguridad.

Configurar el servidor web para usar los certificados

La aplicación Certbot de Let’s encrypt tiene un comando para auto-configurar los servidores web donde esta funcionando. Debido a que estamos un contenedor para Let’s encrypt y otro para el servidor web. No habrá comunicación directa entre ello, por lo que recomiendo actualizar la configuración manualmente, en mi caso, para una pagina hospedada con nginx la sección es la siguiente:

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/MI_DOMINIO/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/MI_DOMINIO/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

Luego de esto, debes reiniciar el servidor web (en mi caso aprovecho y reinicio el contenedor del servidor para liberar memoria) y ya deberías tener tu dominio con el certificado web generado por let’s encrypt.

¡Ahora puedes disfrutar de un sitio web mas seguro!

Deja un comentario

Características de un hosting para WordPress

Cuando deseas hacer un sitio en cualquier tecnología o por ejemplo en WordPress. Aparte de comprar tu dominio, es necesario adquirir el servicio de alojamiento o mejor conocido como hosting. En este artículo te enseñaré que es un servicio de alojamiento y como comprar un hosting para WordPress.

¿Por qué necesito un servicio de alojamiento?

Cuando quieres tener una página en Internet requieres principalmente de dos cosas: el dominio y el hosting. En este último es el alquiler del espacio de disco duro de una computadora (llamada servidor), donde se guardan los archivos, códigos e imágenes de tu página web. De esta forma, cuando escribes la dirección URL de un sitio, el dominio apunta a esa computadora para que el navegador inicie el proceso de carga y te la muestre.

¿Qué necesito para adquirir un hosting para WordPress?

Cada servicio de hosting posee soporte para ciertas tecnologías que permiten ejecutar o cargar tu página web. Para el caso de WordPress se requiere tener 2 cosas: un servidor web y un servidor de base de datos. Las compañías suelen ofrecer ambas al mismo tiempo por lo que no debes preocuparte de adquirirlos por separado.

Servidor Web

Es quien se encarga de procesar los archivos de la pagina para mostrarlos en tu navegador, en el caso de que tenga código de un lenguaje de programación lo procesa para generar el HTML que sería la página web que ves.

El hosting para WordPress, puede ser cualquier servidor web que procese PHP, el lenguaje de programación que utiliza WordPress. Ya que actualmente este CMS posee compatibilidad para la mayoría de ellos: Apache, Nginx, Lightspeed, entre otros. Lo mas importante es que soporte PHP (recomiendo tener compatibilidad con la versión 7.4 o superior) pues sin esto no podrás tener WordPress en tu servidor web.

La diferencia entre versiones y servidores web, solo afecta a usuarios mas avanzados y técnicos. Pues la configuración cambia y la velocidad del mismo. Ya queda criterio del programador cual elegir (en caso que se pueda, pues algunos servicios de alojamiento solo te brindan una configuración única).

Base de Datos

El servidor de base de datos es aquel donde se almacenan los datos de forma clasificada y ordenada. De esta forma es rápido leerlo y clasificarlo. Por ejemplo, si tienes varias noticias o artículos en tu página, el servidor de base de datos permite organizarlas por las fecha mas reciente y permitir a WordPress mostrarlas de forma bonita y organizada en el navegador.

Para WordPress requieres tener como base de datos MySQL o 100% compatibles como MariaDB. Si tu servidor de alojamiento tiene soporte para base de datos MySQL o MariaDB es suficiente. Generalmente el otro requerimiento es el espacio (depende de cuanta información tienes) y la versión que debe ser superior a 5.0.15, que hoy en día es una versión muy vieja.

Otro software

Adicionalmente al gestor de Base de Datos y el servidor web que ejecute PHP. Recomiendo tener adicionalmente:

  • Panel de administración como Cpanel, para poder navegar en el sistema de archivos, crear cuentas de correo, administrar dominio y demas cosas fácilmente.
  • Tener instalado GIT para que los programadores puedan subir sus desarrollos fácilmente. Además permite actualizar o revertir actualizaciones rápidamente.
  • SSH para subir los archivos al servidor de forma segura. También con acceso SSH los programadores pueden ejecutar comando o correr scripts que facilitan el trabajo.
  • Soporte a correos electrónicos para poder enviar correos desde el servidor y no usar (inicialmente) otro servicio adicional para enviar informaciones a tus usuarios.

Conclusiones

Como resumen, si andas buscando un hosting para WordPress, te recomiendo hacer esta comparativa de hostings y seleccionar el que tenga la mejor relación de características ajustadas a tu presupuesto.

¡Luego empieza a subir tus archivos y disfruta de tu sitio con WordPress!

Deja un comentario