Aprende con DrupalXpert

Sigue los pasos esenciales para configurar, entender e iniciar el desarrollo en Drupal.

Configurando tu entorno de desarrollo

Un entorno local adecuado es la base para el éxito en el desarrollo con Drupal. Sigue estos pasos para instalar el software requerido, hacer fork del proyecto base y lanzar tu sitio.

Requisitos previos

Asegúrate de tener las siguientes herramientas instaladas en tu equipo:

  • Docker: Requerido para ejecutar entornos en contenedores con DDEV.
    • Linux (Ubuntu):
      sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
    • Windows/Mac: Descargar Docker Desktop
  • DDEV: Simplifica el desarrollo local automatizando las configuraciones de Docker.
    • Linux:
      curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh
    • Windows/Mac: Instrucciones de Instalación
  • Composer: Gestor de dependencias PHP utilizado para instalar bibliotecas y módulos de Drupal.
    • Linux:
      php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    • Windows: Descargar Composer
  • Git: Esencial para el control de versiones y la colaboración.
    • Linux:
      sudo apt-get install git
    • Windows/Mac: Descargar Git

Fork del Proyecto Base

Para iniciar tu propio proyecto, forquea el repositorio base en GitHub. Este repositorio se encuentra en: DrupalXpert base project

  1. Crear un Fork en GitHub

    Visita el repositorio en GitHub y haz clic en el botón "Fork" en la esquina superior derecha para crear tu copia personal.

    Guía para hacer fork en GitHub

  2. Clona tu Fork

    Clona tu repositorio forkeado a tu máquina local. Reemplaza YOUR-USERNAME con tu nombre de usuario en GitHub:

    git clone https://github.com/YOUR-USERNAME/base.git my_project cd my_project
  3. Configurar el Repositorio remoto (Upstream)

    Vincula tu fork con el repositorio original para poder obtener actualizaciones fácilmente:

    git remote add upstream https://github.com/DrupalXpert/base.git
  4. Sincronizar tu Fork

    Actualiza tu fork regularmente obteniendo y fusionando cambios desde el repositorio upstream:

    git fetch upstream git checkout develop git merge upstream/develop

Iniciando tu Entorno Local

  1. Inicializar DDEV

    En el directorio de tu proyecto, inicia el entorno en contenedores:

    ddev start
  2. Instalar Dependencias

    Descarga todas las bibliotecas y módulos PHP necesarios utilizando Composer:

    ddev composer install

    For more help, refer to the Composer Documentation.

  3. Instalar Drupal

    Configura Drupal con una configuración básica y crea una cuenta de administrador. (Cambia las credenciales predeterminadas para producción.)

    ddev drush site:install --account-name=admin --account-pass=admin -y
  4. Ver tu Sitio

    Lanza tu sitio en un navegador usando la URL local generada:

    ddev launch

    DDEV proporciona una URL HTTPS segura para probar funcionalidades que requieren una conexión segura.

Conceptos básicos del flujo de trabajo con Git

Nuestro flujo de trabajo con Git está diseñado para promover las mejores prácticas, asegurar la estabilidad del código y optimizar la colaboración. Aprende sobre los tipos de ramas, estrategias de commit y técnicas de fusión.

Tipos de ramas

  • main: La rama de producción estable. Todo el código aquí está completamente probado y listo para desplegar.
  • develop: La rama principal para integrar nuevas funcionalidades y desarrollo continuo.
  • feature/: Ramas creadas a partir de develop para trabajar en nuevas funcionalidades.
  • release/: Ramas utilizadas para pruebas finales y preparación antes de lanzamientos a producción.
  • hotfix/: Ramas para solucionar problemas urgentes en producción.

Pasos del flujo de trabajo

  1. Crea una Rama de Funcionalidad

    Comienza creando una nueva rama a partir de develop para tu funcionalidad:

    git checkout develop git checkout -b feature/your-feature
  2. Realiza Commits Frecuentes

    Realiza commits pequeños y descriptivos con mensajes claros que expliquen tus cambios.

  3. Fusiona tu Rama de Funcionalidad

    Antes de fusionar, actualiza tu rama develop y fusiona tus cambios:

    git pull origin develop git push
  4. Abre un Pull Request

    Envía tu rama para que la revisen mediante un pull request en GitHub.

Mejores prácticas

  • Utiliza nombres de ramas claros y descriptivos (por ejemplo, feature/sistema-de-login).
  • Mantén actualizada la rama develop antes de crear nuevas ramas de funcionalidad.
  • Realiza commits pequeños y lógicos con mensajes concisos.
  • Fusiona frecuentemente las actualizaciones de develop en tu rama de funcionalidad para evitar conflictos.

Herramientas de desarrollo

Para garantizar la calidad del código y agilizar el desarrollo, usamos las siguientes herramientas en nuestro flujo de trabajo:

  • Formateador de código:

    Corrige automáticamente los problemas de estándares de codificación en archivos PHP para un estilo consistente.

    ddev phpcbf
  • Code Sniffer:

    Analiza archivos PHP en busca de violaciones de estándares de codificación y reporta los problemas sin modificar los archivos.

    ddev phpcs
  • PHPStan para análisis estático:

    Realiza un análisis estático del código PHP para detectar posibles errores.

    ddev phpstan
  • Twig Code Sniffer:

    Verifica que las plantillas Twig cumplan con los estándares de codificación.

    ddev twigcs
  • Exportación de configuración:

    Exports all configuration changes to code, making site settings version controllable.

    ddev cex
  • Importación de configuración:

    Imports configuration from code, ensuring your site matches the committed settings.

    ddev cim
  • Reconstrucción de caché:

    Limpia y reconstruye todas las cachés para que todos los cambios se reflejen de inmediato.

    ddev cr
  • Frameworks de prueba:

    Ejecuta pruebas con PHPUnit (o Behat) para verificar la fiabilidad del código.

    ddev exec vendor/bin/phpunit
  • Modo de desarrollo:

    Desactiva la caché y activa la depuración para optimizar el flujo de trabajo en desarrollo.

    ddev drush state:set system.performance css.preprocess 0 ddev drush state:set system.performance js.preprocess 0