Usando Composer con WordPress
Publicado: 2022-06-30WordPress existe desde 2003 y se ha convertido en la herramienta predeterminada para la mayoría de las personas que buscan iniciar un sitio web. Si bien ha recorrido un largo camino desde sus raíces como motor de blogs, la tecnología subyacente no ha dado los mismos saltos que la experiencia del usuario.
El desarrollo de WordPress todavía gira en torno a muchos de los estándares que estaban presentes en 2003. Si bien esto puede hacerlo más accesible para las personas debido a la menor comprensión técnica requerida, también significa que muchos recursos de desarrollo nuevos no son compatibles con WordPress de fábrica.
Hoy, vamos a echar un vistazo a una de esas herramientas más nuevas llamada Composer. Veamos cómo puede encajar en su flujo de trabajo de WordPress y discutamos por qué es posible que desee probarlo.
¿Qué es Compositor?
Cada bit de código que escribe tiene dependencias. Si está escribiendo un complemento de WordPress, su mayor dependencia es el propio WordPress. Sin las funciones principales que proporciona WordPress, es probable que su complemento no sea útil en absoluto. Fuera del propio WordPress, podría necesitar un cliente SOAP moderno como nusoap para interactuar con las API basadas en SOAP.
En el pasado, la mayoría de las personas simplemente copiaban el repositorio de nusoap en un directorio de su complemento y luego incluían los archivos necesarios para usar la biblioteca. Aquí es donde Composer puede intervenir y simplificar parte de la gestión de sus dependencias.
Composer es un administrador de dependencias. Está específicamente diseñado para facilitar la instalación y administración de dependencias. Esto puede volverse especialmente crucial si está trabajando en un equipo y desea asegurarse de que todos los miembros del equipo utilicen las mismas bibliotecas mientras realizan su trabajo de desarrollo.
En su base, Composer es un archivo JSON que detalla las dependencias que ha instalado y qué versiones de las dependencias desea usar. Puede ver un ejemplo básico a continuación que incluye la dependencia de nusoap.
{
"requerir": {
“econea/nusoap”: “^0.9.10”
}
}
Cuando ejecuto composer require econea/nusoap en mi complemento, instalará nusoap por mí y lo bloqueará en la versión especificada. En este caso, estoy usando 0.9.10 y continuaré usándolo a menos que le diga a Composer que actualice la dependencia.
Esto tiene la ventaja de simplemente descargar e incluir nusoap porque puedo usar la actualización del compositor para actualizar todas mis dependencias sin necesidad de ir a ver si hay actualizaciones y descargarlas manualmente en mi proyecto. Composer se hace cargo de la gestión de los recursos en este nivel.
Introducción a Composer
Instalar Composer es bastante sencillo.
en ventanas
Si está en Windows, se proporciona un instalador para simplificar el proceso. Instalará la última versión de Composer y la hará accesible globalmente para sus proyectos.
Linux/Unix/mac OS
En cualquiera de estas plataformas, tiene algunos pasos más para configurar Composer. Para comenzar, ejecute los comandos necesarios para descargar Composer y configurarlo.
php -r “copiar('https://getcomposer.org/installer', 'composer-setup.php');”
php -r "if (hash_file('sha384', 'compositor-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76'81c) verificado 'Echo' instalador; } else { echo 'Instalador corrupto'; desvincular('compositor-setup.php'); } echo PHP_EOL;”
php composer-setup.php
php -r “desvincular('compositor-setup.php');”
A continuación, querrá ejecutar Composer globalmente para el desarrollo local, por lo que tendremos que ajustar la instalación predeterminada para asegurarnos de que esté disponible en cualquier momento que queramos usar Composer. Puede mover Composer para que esté disponible globalmente con el siguiente comando ejecutado desde el mismo directorio del que acaba de descargar Composer.
mv composer.phar /usr/local/bin/compositor
Actualizar compositor
En Windows y macOS, todo lo que necesita hacer para actualizar a la última versión de Composer es ejecutar la actualización automática del compositor. Si está en Linux/Unix, deberá ejecutar sudo apt update && upgrade para que su sistema busque las últimas versiones y luego puede ejecutar la actualización automática del compositor para obtener la última versión.
Ahora que está configurado, echemos un vistazo al uso de Composer para instalar WordPress.
Instalar WordPress con Composer
¿Qué pasa si quieres administrar un sitio completo con Composer? Primero, debe decidir si WordPress es la dependencia del proyecto o el núcleo del proyecto. Sí, un poco de confusión mental.
WordPress se puede considerar una dependencia del proyecto porque el objetivo final para sus clientes no es tener WordPress instalado. Quieren una tienda o un blog y eso depende de que instales WordPress. Esta es la postura que toma un proyecto como Roots con su configuración Bedrock WordPress basada en Composer llamada Bedrock.
Usar Bedrock significa que no tiene que decirle a Composer sobre WPackagist porque ya está configurado. Es donde le recomiendo que comience si desea administrar un sitio completo con Composer.
Para instalar Bedrock, ejecute el siguiente comando.
compositor crear-proyecto raíces/base
Esto le dará la siguiente estructura de archivos.
├── compositor.json
├── .env
├── configuración
│ ├── aplicación.php
│ └── entornos
│ ├── desarrollo.php
│ ├── puesta en escena.php
│ └── producción.php
├── vendedor
└── web
├── aplicación
│ ├── mu-complementos
│ ├── complementos
│ ├── temas
│ └── cargas
├── wp-config.php
├── índice.php
└── wpp
Esto es muy diferente a la configuración estándar de WordPress. Para comenzar, tiene su archivo composer.json en la raíz de la instalación. Aquí es donde verá la configuración de Composer.
Su archivo .env es donde puede almacenar las diferentes configuraciones de la base de datos. Esto es necesario porque su sitio local y su sitio en vivo tendrán diferentes nombres de usuario y contraseñas de base de datos. El archivo wp-config.php predeterminado comprenderá las variables que coloca en su archivo .env porque Bedrock usa esas variables en lugar de codificarlas en la información de conexión de la base de datos.
Su archivo .env debe ignorarse en su repositorio de Git. Cuando configura un nuevo sitio, agrega un nuevo archivo .env con la información de configuración de la base de datos requerida.
Hay algunas otras variables que debe configurar aquí para comenzar Bedrock, que se detallan en su documentación.
Debajo de la carpeta de configuración hay diferentes configuraciones predeterminadas para los entornos que usará. En desarrollo, esto activa el informe de errores y, en sus entornos de producción, se asegura de que el registro de errores no interfiera con el buen funcionamiento de su sitio.
Con Bedrock como base, ahora puede usar Composer para instalar sus complementos de WordPress a través de WPackagist.
WPackagist es un espejo del repositorio de plugins y temas de WordPress. Esto es necesario porque, de manera predeterminada, la mayoría de los complementos y temas no están disponibles para que Composer los instale. El espejo agrega los archivos necesarios para cada complemento para que Composer pueda usarse para administrar los complementos.
Si desea instalar WooCommerce en su instalación de WordPress basada en Bedrock, primero debe solicitar WooCommerce, composer requiere wpackagist-plugin/woocommerce, luego debe indicarle a Composer que instale las dependencias, composer install.
Ahora puede ir al área de administración de su instalación de WordPress y activar WooCommerce y comenzar a construir su sitio. Para actualizar WooCommerce cuando sale una nueva versión, o para actualizar WordPress, debe ejecutar la actualización del compositor.
Aquí es donde un proyecto basado en Composer puede tener algunos problemas. Si ejecuta sus actualizaciones a través del administrador de WordPress, tendrá una discrepancia entre lo que Composer espera y lo que WordPress ha instalado. Si va a optar por Composer, siga usándolo como su herramienta de actualización y no trabaje a través del administrador de WordPress.
¿Cuándo debería usar Composer ?
Estoy seguro de que muchos de ustedes se preguntarán por qué Composer es una herramienta tan buena para el desarrollo de WordPress. WordPress no se creó con Composer en mente, por lo que para trabajar con él, debe pasar por algunos obstáculos para que funcione bien.
Para los desarrolladores de complementos y temas, hay un caso claro de que Composer puede facilitar el manejo de las dependencias que necesita traer del ecosistema PHP más amplio. Para los desarrolladores de WordPress, el argumento es menos claro. A algunos les gusta usar Composer para administrar todo su sitio como lo hace Roots. Esto puede permitirle tener menos archivos administrados por Git, pero eso nunca me ha parecido un caso convincente.
El caso que me gusta es que Composer puede facilitar tener diferentes dependencias para diferentes entornos. Luego puede usar su proceso de implementación para implementar esas dependencias en sus entornos y no tener que administrarlas manualmente.
Como desarrollador, también debe tener en cuenta las necesidades de su cliente. Si no tienen un equipo de desarrollo para administrar el sitio a largo plazo, entonces pueden tener problemas con una instalación de WordPress no estándar. En algunos casos, sus anfitriones pueden decirles que el soporte no está disponible porque no están usando la forma normal de instalar y usar WordPress. Cuando atiende a clientes, siempre necesita equilibrar la tecnología genial que usa con lo que el cliente puede manejar a largo plazo.
Solo por esta razón, no uso Composer en mis proyectos de sitio completo. Mis clientes los manejarán día a día durante años y no quiero poner barreras adicionales. Ambos queremos que sus sitios funcionen sin problemas durante los próximos años.
Si está buscando mejorar sus habilidades de PHP con tecnologías modernas, entonces debería echar un vistazo a cómo Composer puede encajar en sus flujos de trabajo de WordPress.