Saltar al contenido principal

Configuración de Composer

Descripción General

Este documento describe la configuración completa del archivo composer.json para el proyecto Gaia Magento 2. Incluye todas las dependencias, repositorios, configuraciones de autoloading y plugins permitidos.

Información del Proyecto

{
"name": "magento/project-community-edition",
"description": "eCommerce Platform for Growth (Community Edition)",
"type": "project",
"version": "2.4.0",
"minimum-stability": "stable"
}
  • Nombre: magento/project-community-edition
  • Descripción: Plataforma de eCommerce para crecimiento (Edición Community)
  • Tipo: Proyecto
  • Versión: 2.4.0
  • Estabilidad mínima: stable

Licencias

"license": [
"OSL-3.0",
"AFL-3.0"
]

El proyecto utiliza las licencias estándar de Magento:

  • OSL-3.0: Open Software License
  • AFL-3.0: Academic Free License

Configuración de Composer

Configuración General

"config": {
"preferred-install": "dist",
"sort-packages": true
}
  • preferred-install: "dist" - Prefiere instalar paquetes como distribuciones comprimidas
  • sort-packages: true - Ordena automáticamente los paquetes en composer.json

Plugins Permitidos

"allow-plugins": {
"magento/magento-composer-installer": true,
"magento/inventory-composer-installer": true,
"laminas/laminas-dependency-plugin": true,
"magecom/composer-installer": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"magento/composer-root-update-plugin": true,
"php-http/discovery": true
}

Estos plugins están permitidos para:

  • Instalación de módulos de Magento
  • Gestión de inventario
  • Dependencias de Laminas
  • Instalación de módulos Magecom
  • Instalación de PHP CodeSniffer
  • Actualizaciones de Magento
  • Descubrimiento de HTTP clients

Dependencias Principales (require)

Motores de Búsqueda

"algolia/algoliasearch-custom-algolia-magento-2": "^1.1",
"algolia/algoliasearch-magento-2": "^3.1",
"typesense/typesense-php": "^4.8"
  • Algolia: Motor de búsqueda principal con módulo personalizado
  • Typesense: Motor de búsqueda alternativo

Módulos de Amasty

"amasty/adminactionslog": "^2.0",
"amasty/mostviewed": "2.11.3"
  • adminactionslog: Registro de acciones administrativas
  • mostviewed: Productos más vistos

Módulos de Gaia (Internos)

"gaia/core": "0.5.1",
"gaia/gabo-php": "v3.0.1",
"gaia/gaia-elastic": "0.1.5",
"gaia/williams-php": "0.3.4"
  • core: Módulo central de Gaia
  • gabo-php: Funcionalidades específicas de Gabo
  • gaia-elastic: Integración con Elasticsearch
  • williams-php: Funcionalidades específicas de Williams

Métodos de Pago

"conekta/conekta-php": "4.3.0",
"mercadopago/adb-payment": "^1.8",
"openpay/magento2-cards": "3.2.1",
"stripe/stripe-payments": "2.7.7"
  • Conekta: Pagos en México
  • MercadoPago: Pagos en Latinoamérica
  • Openpay: Pagos con tarjeta
  • Stripe: Pagos internacionales

Módulos de Magento GraphQL

"magento/module-gift-message-graph-ql": "^100.4",
"magento/module-newsletter-graph-ql": "^100.4",
"magento/module-review-graph-ql": "^100.4",
"magento/module-send-friend-graph-ql": "^100.4",
"magento/module-store-graph-ql": "^100.4"

Módulos GraphQL para funcionalidades específicas de Magento.

Otros Módulos Importantes

"avada/module-proofo": "1.0.4",
"gorgias/module-magento-connect": "^1.2",
"magecom/module-lazy-load": "^1.0",
"magecom/module-webp-converter": "^1.0",
"mageplaza/magento-2-social-login": "4.1.2",
"mageplaza/module-banner-slider": "4.0.2",
"mageplaza/module-smtp": "4.5.3",
"mailchimp/mc-magento2": "102.3.43",
"reviewscouk/reviews": "^0.0.42"
  • Proofo: Funcionalidades de prueba
  • Gorgias: Integración con CRM
  • Lazy Load: Carga diferida de imágenes
  • WebP Converter: Conversión de imágenes a WebP
  • Social Login: Login con redes sociales
  • Banner Slider: Sliders de banners
  • SMTP: Configuración de correo
  • Mailchimp: Email marketing
  • Reviews.co.uk: Sistema de reseñas

Librerías de Soporte

"gmostafa/php-graphql-client": "^1.13",
"newrelic/monolog-enricher": "1.0.1",
"php-http/curl-client": "^2.3",
"symfony/http-client": "^5.4"
  • GraphQL Client: Cliente PHP para GraphQL
  • NewRelic: Monitoreo de aplicaciones
  • HTTP Clients: Clientes HTTP para APIs

Dependencias de Desarrollo (require-dev)

Herramientas de Testing

"allure-framework/allure-phpunit": "~1.2.0",
"magento/magento2-functional-testing-framework": "^3.0",
"phpunit/phpunit": "^9"

Herramientas de Calidad de Código

"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
"friendsofphp/php-cs-fixer": "~2.16.0",
"magento/magento-coding-standard": "*",
"pdepend/pdepend": "~2.7.1",
"phpcompatibility/php-compatibility": "^9.3",
"phpmd/phpmd": "^2.8.0",
"phpstan/phpstan": ">=0.12.3 <=0.12.23",
"sebastian/phpcpd": "~5.0.0",
"squizlabs/php_codesniffer": "~3.5.4"
  • PHP CodeSniffer: Análisis estático de código
  • PHP CS Fixer: Formateo automático de código
  • PHPStan: Análisis estático avanzado
  • PHPMD: Detección de código problemático
  • PHPCPD: Detección de código duplicado

Autenticación

"lusitanian/oauth": "~0.8.10"

Módulos Reemplazados (replace)

El proyecto reemplaza varios módulos estándar de Magento:

Métodos de Pago Reemplazados

"amzn/amazon-pay-and-login-magento-2-module": "*",
"amzn/amazon-pay-and-login-with-amazon-core-module": "*",
"amzn/amazon-pay-module": "*",
"amzn/amazon-pay-sdk-php": "*",
"amzn/login-with-amazon-module": "*",
"klarna/m2-payments": "*",
"klarna/module-core": "*",
"klarna/module-kp": "*",
"klarna/module-ordermanagement": "*"

Módulos de Envío Reemplazados

"temando/module-shipping": "*",
"temando/module-shipping-m2": "*",
"temando/module-shipping-remover": "*",
"magento/module-ups": "*",
"magento/module-usps": "*",
"magento/module-fedex": "*",
"magento/module-dhl": "*"

Módulos de Impuestos Reemplazados

"vertexinc/product-magento-module": "*",
"vertex/module-address-validation": "*",
"vertex/module-tax": "*",
"vertex/product-magento-module": "*",
"vertex/sdk": "*"

Otros Módulos Reemplazados

"magento/module-aws-s3-page-builder": "*",
"magento/module-marketplace": "*",
"magento/module-page-builder": "*",
"magento/module-page-builder-admin-analytics": "*",
"magento/module-page-builder-analytics": "*",
"magento/module-catalog-page-builder-analytics": "*",
"magento/module-cms-page-builder-analytics": "*",
"magento/module-sample-data": "*",
"magento/module-signifyd": "*",
"magento/module-advanced-search": "*",
"magento/module-elasticsearch": "*",
"magento/module-elasticsearch-6": "*",
"magento/module-elasticsearch-7": "*",
"magento/module-inventory-elasticsearch": "*",
"magento/module-elasticsearch-catalog-permissions": "*",
"elasticsearch/elasticsearch": "*"

Conflictos

"conflict": {
"gene/bluefoot": "*"
}

El proyecto no es compatible con el módulo Bluefoot de Gene.

Configuración de Autoloading

Autoloading Principal

"autoload": {
"psr-4": {
"Magento\\Framework\\": "lib/internal/Magento/Framework/",
"Magento\\Setup\\": "setup/src/Magento/Setup/",
"Magento\\": "app/code/Magento/",
"Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/",
"Algolia\\AlgoliaSearch\\RequestOptions\\": "app/code/Algolia/AlgoliaSearch/RequestOptions/",
"Gaia\\Core\\Model\\": "app/code/Gaia/Core/Model/"
},
"psr-0": {
"": [
"app/code/",
"generated/code/"
]
},
"files": [
"app/etc/NonComposerComponentRegistration.php"
],
"exclude-from-classmap": [
"**/dev/**",
"**/update/**",
"**/Test/**"
]
}

Autoloading de Desarrollo

"autoload-dev": {
"psr-4": {
"Magento\\Sniffs\\": "dev/tests/static/framework/Magento/Sniffs/",
"Magento\\Tools\\": "dev/tools/Magento/Tools/",
"Magento\\Tools\\Sanity\\": "dev/build/publication/sanity/Magento/Tools/Sanity/",
"Magento\\TestFramework\\Inspection\\": "dev/tests/static/framework/Magento/TestFramework/Inspection/",
"Magento\\TestFramework\\Utility\\": "dev/tests/static/framework/Magento/TestFramework/Utility/",
"Magento\\PhpStan\\": "dev/tests/static/framework/Magento/PhpStan/"
}
}

Repositorios Configurados

Repositorios Oficiales

"0": {
"type": "composer",
"url": "https://repo.magento.com/"
}

Repositorios de Gaia (Git)

"1": {
"type": "git",
"url": "https://bitbucket.org/gaiadevelop/gabo-php"
},
"2": {
"type": "git",
"url": "https://bitbucket.org/gaiadevelop/williams-php"
},
"3": {
"type": "git",
"url": "https://bitbucket.org/gaiadevelop/gaia-elastic"
},
"4": {
"type": "git",
"url": "https://bitbucket.org/gaiadevelop/gaia-core"
}

Repositorios de Terceros

"5": {
"type": "composer",
"url": "https://magento2connector.unific.com"
},
"amasty": {
"type": "composer",
"url": "https://composer.amasty.com/community/"
},
"amasty_account2": {
"type": "composer",
"url": "https://composer2.amasty.com/community/"
},
"magecom": {
"type": "composer",
"url": "https://repo.magecom.net"
}

Configuración Extra

"extra": {
"magento-force": "override"
}

Esta configuración fuerza el override de archivos de Magento.

Consideraciones Importantes

Dependencias Críticas

  1. Módulos Gaia: Son módulos internos desarrollados específicamente para este proyecto
  2. Métodos de Pago: Múltiples proveedores para diferentes regiones geográficas
  3. Motores de Búsqueda: Algolia como principal y Typesense como alternativo
  4. GraphQL: Módulos específicos para funcionalidades headless

Repositorios Privados

Los módulos de Gaia están alojados en repositorios privados de Bitbucket:

  • gabo-php: Funcionalidades específicas de Gabo
  • williams-php: Funcionalidades específicas de Williams
  • gaia-elastic: Integración con Elasticsearch
  • gaia-core: Módulo central de Gaia

Herramientas de Desarrollo

El proyecto incluye un conjunto completo de herramientas para:

  • Testing automatizado
  • Análisis estático de código
  • Formateo automático
  • Detección de problemas de calidad

Módulos Reemplazados

Se han reemplazado varios módulos estándar de Magento para:

  • Evitar conflictos con módulos personalizados
  • Optimizar el rendimiento
  • Reducir la complejidad del sistema
  • Usar alternativas más específicas para el proyecto