Cómo implementar la instalación en línea de módulos como WordPress

La mejor manera de hacerlo es leer el código existente que actualmente logra el mismo resultado. Lea el código existente en los marcos que ya tienen esta característica. Le ayudará a mejorar en la lectura y comprensión de códigos más complicados (que es una habilidad esencial para escribir un marco), y le dará toneladas de ideas para escribir un buen código (que es otra habilidad que necesitará).

Si no desea ser influenciado por el código existente, primero escriba su solución, pero observe otras implementaciones. Como alguien que ha entrevistado a más de cincuenta personas que han “escrito su propio marco”, no he encontrado a nadie que haya hecho algo mejor que las soluciones existentes, pero todos creyeron que habían hecho algo increíble. Escribir cosas desde cero puede ser un buen refuerzo del ego, pero no necesariamente lo convierte en un buen programador.

Dicho esto, así es como lo haría.

Primero debe descargar un archivo o un paquete. Esto podría ser un archivo zip o tar.gz. Hay muchas funciones para descargar archivos con PHP: elija su favorita. Guzzle, curl y file_get_contents () te permiten descargar un archivo. Si también desea escribir su propia implementación a este respecto, simplemente vaya a las funciones PHP existentes como file_get_contents – Manual.

Luego deberá extraer el archivo que ha descargado. De nuevo, elige aquí; ambos pueden mirar los cientos de paquetes que ya existen en packagist, o escribir su propia implementación, que tendría que 1) leer los bytes y descomprimir todo en el código PHP, o 2) usar el shell para ejecutar el comando en el máquina en la que se ejecuta el programa PHP. Por supuesto, debe verificar si está en Windows, Mac o Linux, o si el programa correcto para descomprimir existe en la ruta, y así sucesivamente.

Después de descomprimir el módulo recién descargado en un directorio, deberá conectarlo a su sistema de complementos. No puedo explicar mucho este paso porque depende en gran medida de cómo va a escribir un sistema modular, pero esto podría ser automático (donde su código existente recorre los directorios existentes dentro del directorio, por ejemplo, “módulos”), que es lento, o la opción más rápida de tener todos sus módulos registrados en un archivo de configuración, en cuyo caso su script de actualización tendría que ir y actualizar ese archivo PHP después de descomprimir el archivo descargado.

¡Espero que esto ayude y buena suerte! Solo … no caigas en la trampa del ego. Sería un desperdicio.