Composer

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Composer and the translation is 95% complete.
Outdated translations are marked like this.
Other languages:
English • ‎Türkçe • ‎español • ‎français • ‎magyar • ‎português • ‎русский • ‎中文 • ‎日本語

Composer es un gestor de dependencias para bibliotecas de PHP. Además, puede emplearse para la instalación de extensiones MediaWiki (disponibles desde MediaWiki 1.22 ). A partir de la versión MediaWiki 1.25 de MediaWiki, las dependencias de bibliotecas externas del núcleo están siendo gestionadas con "Composer".

Instalar Composer

En Unix/Linux y macOS

Hay diferentes maneras de utilizar install Composer, además de la más sencilla, sudo apt install composer:

Descargar la última versión estable:

wget -cO - https://getcomposer.org/composer-1.phar > composer.phar

Los usuarios de OS X pueden utilizar Homebrew para instalar Composer:

brew install composer

Si esto no funciona o no tienes Homebrew instalado, puedes intentar lo siguiente:

php -r "readfile('https://getcomposer.org/installer');" | php

Jenkins y el distribuidor de extensiones usan la copia de Composer almacenada en el repositorio git "integration/composer".

Una vez Composer esté instalado, puedes ejecutar comando por medio del phar descargado.

php composer.phar someCommand

Puedes querer mover el phar a tu PATH para que pueda ser utilizado como un ejecutable normal:

mv composer.phar /usr/local/bin/composer
composer someCommand

Si el comando mv falla debido a permisos, ejecútalo de nuevo con sudo.

En Windows

Descárgalo e inicia el instalador desde la página de descargas Si prefieres la instalación manual puedes seguir los pasos de arriba, con la excepción de que Windows no tiene wget ni APT ni Homebrew por defecto y que no está el directorio /usr/local/bin.


Uso en el núcleo de MediaWiki

MediaWiki 1.25+ depende de algunas bibliotecas externas que son gestionadas con Composer. Composer crea un autocargador en vendor/autoload.php, que es incluido por WebStart.php.

Las dependencias gestionadas de Composer son empaquetados en distribuciones de archivos comprimidos de MediaWiki y extensiones, por lo que los administradores del sistema no necesitan utilizar Composer directamente. Cuando instalas MediaWiki utilizando Git las dependencias declaradas en el $IP/composer.json pueden ser instaladas localmente ejecutando composer update --no-dev o el repositorio mediawiki/vendor.git puede ser clonado para proporcionar las mismas bibliotecas utilizadas en el cluster de producción de Wikimedia.[1]

$IP son las siglas de Installation Path, es decir, la ruta o directorio donde se ha instalado MediaWiki, el mismo directorio que contiene LocalSettings.php , index.php , etc..

Utilizar composer-merge-plugin

$IP son las siglas de Installation Path, es decir, la ruta o directorio donde se ha instalado MediaWiki, el mismo directorio que contiene LocalSettings.php , index.php , etc..

El núcleo de MediaWiki "posee" $IP/composer.json y cambiará el contenido de ese archivo en los archivos comprimidos y en las actualizaciones gestionadas con Git. Se ha desarrollado un plugin especial para Composer, composer-merge-plugin, que permite a las instalaciones locales utilizar Composer para cargar bibliotecas opcionales o gestionar extensiones con Composer.[2] Este plugin y la configuración composer.json del núcleo de MediaWiki permiten un despliegue local para añadir extensiones requeridas y bibliotecas a un archivo composer.local.json dentro del directorio raíz de MediaWiki.

composer.local.json también puede ser utilizado para instalar bibliotecas gestionadas con Composer y que son necesarias por extensiones que no están instaladas utilizando Composer. Esto solo se necesita cuando las extensiones no están instaladas a partir de archivos comprimidos generados por el distribuidor de extensiones.

Para activar Composer para descubrir y procesar los archivos composer.json que pueden ser incluidos en cualquiera de y en todas tu extensiones instaladas localmente, añade algo como esto a tu $IP/composer.local.json:

{
    "extra": {
        "merge-plugin": {
            "include": [
                "extensions/*/composer.json",
                "skins/*/composer.json"
            ]
        }
    }
}

Después de cualquier cambio a composer.local.json necesitas eliminar composer.lock antes de iniciar composer install de nuevo. De esta manera Composer recalculará que las dependencias y los cambios tengan efecto.

Recursos

Referencias