¡Es hora de la tercera parte de nuestra serie «El desarrollo de Studio en abierto»! En este artículo, hablaremos sobre la conexión de la aplicación de Studio con otros proyectos de código abierto, y más concretamente sobre la relación clave que tiene con WordPress Playground. También nos adentraremos en las ventajas y los desafíos de esta relación simbiótica y veremos cómo ambos proyectos se enriquecen a través de mejoras y soluciones de errores.
Si te interesa la serie completa, échale un vistazo a los artículos anteriores:
Recuerda que Studio es nuestra aplicación gratuita y de código abierto para desarrollar en WordPress de forma local.
¿Cúal es la conexión de Studio con otros proyectos de código abierto?
Studio se apoya en varios proyectos de código abierto, siendo el principal WordPress Playground, que proporciona un servidor local de WordPress y gestiona desde el código PHP hasta los archivos estáticos y la base de datos. De esta forma los desarrolladores pueden probar sitios, plugins y temas de WordPress en un entorno local aislado.
WordPress Playground utiliza Emscripten para compilar el intérprete de PHP en WebAssembly, permitiendo que PHP se ejecute en el navegador y en otras plataformas: un salto significativo en el desarrollo de WordPress.
A través de WordPress Playground, Studio también utiliza otras herramientas de código abierto como el plugin de integración SQLite.
Studio en sí mismo es de código abierto, lo que significa que su código base está abierto a revisiones, contribuciones y forks por parte de la comunidad. Todo esto fomenta la colaboración, potencia la innovación y permite que se identifiquen y resuelvan rápidamente los problemas.
Gracias a la naturaleza de código abierto de Studio y los proyectos que utiliza (como WordPress Playground), no nos quedamos bloqueados ante comportamientos no deseados en nuestras bibliotecas, sino que, por el contrario, sirve para localizar errores u oportunidades para mejorar estos proyectos y aportar las soluciones y mejoras necesarias. En lugar de dar rodeos, podemos mejorar el rendimiento y las capacidades de Studio directamente solucionando errores.
Esto crea un círculo virtuoso de mejora continua, siendo el ejemplo perfecto de cómo la colaboración entre proyectos de código abierto fomenta la innovación y ayuda a resolver retos complejos.
Desafíos que encontramos al trabajar con WordPress Playground
WordPress Playground es muy potente, pero como su función es hacer que WordPress funcione en un entorno no habitual (un navegador, en lugar de un servidor), hay cosas que funcionan de forma diferente a lo que los desarrolladores están acostumbrados. Utilizarlo como motor de Studio nos permite beneficiarnos de todo lo bueno, como una configuración rápida, pero también nos tenemos que enfrentar a algunos retos:
- Compatibilidad entre plataformas: Para asegurarnos de que WordPress Playground funciona bien en diferentes sistemas operativos (Windows, macOS, Linux) y navegadores, es necesario realizar muchas pruebas y hacer muchos ajustes.
- Rendimiento: Gestionar múltiples recursos (intérprete de PHP, sitio de WordPress, base de datos y sistema de archivos) a la vez que se ejecutan varios sitios en Studio puede reducir el rendimiento. Puedes leer más sobre cómo conseguimos mantener un alto rendimiento en Studio aquí.
- Compatibilidad con plugins y temas: Aunque WordPress Playground crea un entorno completo para ejecutar sitios, algunos plugins y temas necesitan extensiones que no están incluidas en WordPress Playground de forma predeterminada. A menudo hay que realizar ajustes para que diferentes plugins y temas sean compatibles.
- Gestión de la base de datos: WordPress Playground utiliza una base de datos de SQLite en lugar de una de MySQL, lo que altera completamente como funciona WordPress. Este cambio requiere adaptaciones en las consultas a la base de datos y la compatibilidad con plugins y temas.
Todas estas complejidades muchas veces resultan en incompatibilidades, errores y problemas de rendimiento. Sin embargo, creemos que los beneficios de WordPress Playground superan con creces los inconvenientes, y estamos muy comprometidos a resolverlos contribuyendo al proyecto Playground. Así, no solo funciona mejor Studio, sino que cualquiera que utilice Playground podrá disfrutar de una experiencia más pulida.
A cambio, Studio también se beneficia de las contribuciones de otros usuarios a Playground.
Nuestras contribuciones más recientes a WordPress Playground y a otros proyectos de código abierto
Como parte de nuestras contribuciones a la aplicación Studio, recientemente nos hemos puesto el objetivo de mejorar la compatibilidad de plugins, temas y flujos de trabajo en los sitios. Estas son algunas de las soluciones que hemos aportado a los proyectos.
Compatibilidad con la base de datos MySQL
Con esta pull request hemos ayudado a mejorar la compatibilidad de los sitios al conectarse a las bases de datos MySQL, haciendo que Studio sea más flexible a la hora de gestionar varias configuraciones de sitios y aumentando su capacidad de soportar configuraciones de WordPress más diversas.
Soporte para symlinks
Hemos aportado dos contribuciones (PR 1, PR 2) para añadir soporte clave a la hora de gestionar symlinks en los sitios, mejorando enormemente la compatibilidad y la flexibilidad del sistema de archivos. Esta actualización mejora significativamente el workflow de desarrollo y permite que los desarrolladores mantengan una estructura de proyectos más limpia y puedan gestionar mejor los temas y plugins a través de múltiples proyectos. Además, facilita el control de versiones y la colaboración al añadir enlaces a repositorios externos sin duplicar archivos.
Corrección de la subida de archivos multimedia en Windows
Contribuimos con esta solución a un error grave a la hora de subir archivos multimedia en sitios utilizando la versión de Windows de la aplicación Studio, garantizando una experiencia más fluida para los usuarios de Windows. Esta aportación sirve para solucionar un importante vacío de funcionalidad y garantizar así que Studio proporciona una experiencia de gestión de archivos multimedia fiable y consistente a través de todos los sistemas operativos compatibles.
Mejoras en el núcleo y las extensiones de WordPress
Otra contribución sirvió para solucionar el proceso de mejora de versiones de WordPress y de plugins y temas. Esta mejora hace que el proceso de actualización sea más sencillo y permite que los desarrolladores puedan mantener fácilmente sus instalaciones de WordPress y las extensiones asociadas.
Compatibilidad con WooCommerce
Esta pull request ha mejorado significativamente la compatibilidad con el plugin WooCommerce, llevando más allá la utilidad de Studio para el desarrollo de ecommerce. Esta contribución resolvió algunas consultas y operaciones específicas en la base de datos que no eran compatibles con la base de datos SQLite que se utiliza en los sitios creados con Studio. El plugin de integración de SQLite tiene diferentes complejidades que permiten una integración sin fisuras con el ecosistema de WordPress, y esta contribución soluciona uno de los principales puntos débiles de utilizar WooCommerce en entornos locales de WordPress.
Compatibilidad con la extensión cURL
Hemos ayudado a desbloquear la posibilidad de habilitar la extensión cURL en PHP que se utiliza en Playground y que ha resultado ser necesaria para una cantidad considerable de plugins a la hora de realizar llamadas externas a la API o recuperar información remota. De esta forma, se aumenta el espectro de plugins que se pueden utilizar con efectividad dentro de Studio y WordPress Playground.
Compatibilidad con la creación de archivos
Hemos solucionado un error para mejorar la compatibilidad con plugins dedicados a crear archivos usando umask para configurar sus permisos, mejorando así las operaciones del sistema de archivos. Era un punto clave para plugins que generan cachés, crean CSS personalizado o archivos de JavaScript o gestionan subidas de archivos de formas no convencionales. Al resolver estos problemas operativos, garantizamos que una mayor variedad de plugins funcionen correctamente en Studio y que se pueda representar mejor el comportamiento de los sitios en un entorno de producción.
Todos estos ejemplos son una muestra de cómo las contribuciones colaborativas ayudan a la evolución de Studio, mejorando su integración con la gran variedad de plugins y temas del ecosistema de WordPress.
Formas de colaborar
Si este artículo te ha inspirado a contribuir a algún proyecto de código abierto (a nosotros nos encanta), estas son algunas formas en las que puedes hacerlo:
¡Entre todos podemos crear herramientas increíbles para la comunidad!🙂
¿Todo listo para empezar a construir?
Si te ha parecido interesante esta información o si desarrollas sitios de WordPress, no dejes pasar el potencial de Studio. Es gratuito, de código abierto y se integra a la perfección en tus procesos de desarrollo.
Cuando hayas descargado Studio, conéctalo a tu cuenta de WordPress.com (gratis o de pago) para tener acceso a funciones como los sitios de demostración.
Únete a otros 9M suscriptores