Centro del desarrollador
Esta es una descripción de alto nivel del desarrollo de MediaWiki que incluye enlaces a los documentos relevantes, recursos y herramientas disponibles a los desarrolladores de MediaWiki. Está escrito para desarrolladores especializados en LAMP con experiencia en el uso de MediaWiki.
- Si quieres usar web APIs de Wikimedia, visita el Portal del Desarrollador.
- Si quieres contribuir al desarrollo del software Wikimedia, véase Desarrolladores nuevos .
- Como guía introductoria al desarrollo de MediaWiki y sus extensiones, lee Cómo convertirse en un hacker MediaWiki .
- Si quieres colaborar con otros usuarios de MediaWiki, el Grupo de interesados de MediaWiki (MWStake) es un grupo de usuarios de MediaWiki formado por desarrolladores de MediaWiki, administradores de sistemas, usuarios, consultores y proveedores de alojamiento.
Descripción
MediaWiki es el software que permite el funcionamiento de Wikipedia, sus proyectos hermanos y miles de wikis en todo el mundo.
MediaWiki está escrito en lenguaje de programación PHP [1]. Usa jQuery como librería cliente de JavaScript.
MediaWiki está escrito principalmente para la plataforma LAMP[2] y funciona en la mayoría de sistemas operativos. MediaWiki usa principalmente los servidores de bases de datos MySQL y MariaDB.[3]
MediaWiki está desarrollado al estilo código abierto[4], su desarrollo principal se coordina en gran parte online, y respaldado por la Fundación Wikimedia, aunque la comunidad de desarrolladores voluntarios juega también un papel importante.
- La discusión sobre el desarrollo se realiza en varias listas de correo y canales IRC La principal lista del desarrollador es wikitech-l. El canal del desarrollador es #mediawiki connect.
- El código fuente se gestiona mediante el sistema de control de revisiones Git.[5]
- La revisión del código de la mayoría de los proyectos se realiza en Gerrit . Consulta este tutorial para configurar git y gerrit y poder enviar parches.
- Los reportes de error y las tareas se manejan en Phabricator .
- Los desarrolladores que trabajan en la ampliación o la interfaz de MediaWiki (en lugar de trabajar en el código principal) disponen de varios puntos prácticos de extensión, como la API, el sistema de puntos de extensión (hooks) y apariencias. Consulta la sección #Extending MediaWiki de esta página para obtener información general.
Documentos relevantes
Código, desarrollo y estilo
- Normativa de desarrollo – descripción de las normativas principales de desarrollo.
- Convenciones de código – aprende a escribir código PHP al estilo de MediaWiki.
- Seguridad para desarrolladores – aprende a que MediaWiki esté segura.
- Manual:Pre-commit checklist – lee esta lista de verificación antes de confirmar código.
- Guía de revisión de código – guía para revisores de 'commits' al código fuente de MediaWiki.
- Technical Decision Making Process – Lea sobre el proceso para decidir hacer grandes cambios técnicos.
Depuración y pruebas
- Cómo depurar: guía para depurar MediaWiki.
- Manual:Errors and symptoms – una descripción de errores más comunes en MediaWiki y los síntomas relacionados.
- Pruebas de navegador – aprende a escribir pruebas de usabilidad para MediaWiki con Selenium.
- Pruebas unitarias – aprende a escribir pruebas unitarias para MediaWiki con PHPUnit.
- Pruebas de integración de la API – Aprende a escribir pruebas de integración de API para MediaWiki usando Mocha.
- Seguridad para desarrolladores – aprende a escribir código seguro.
Arquitectura
- MediaWiki architecture – una introducción a la arquitectura de MediaWiki.
- Manual:Code – una descripción de las partes principales del código fuente de MediaWiki.
- Manual:Database layout – una descripción de los esquemas en las base de datos de MediaWiki.
- Manual:Global object variables – una lista de las principales variables globales.
- Localización – aprende sobreel sistema de internacionalización de MediaWiki.
- Espacio de nombres Manual en este wiki: documentación para desarrolladores.
- Referencia de clases de MediaWiki: documentación técnica generada a partir del código fuente de MediaWiki. (Nota: la referencia de clases es un página grande de carga lenta.)
Subsistemas
- API: la API de MediaWiki provee un acceso directo de alto nivel a los datos en las bases de datos de MediaWiki
- ContentHandler – La infraestructura de MediaWiki para soportar tipos personalizados de contenido de página.
- Acceso a base de datos – descripción de la utilización de las bases de datos en MediaWiki. Se incluye una guía breve de la capa de abstracción.
- Job queue – infraestructura de MediaWiki para procesar tareas largas asincrónicamente.
- Messages API – infraestructura de MediaWiki para proveer mensajes localizados de la aplicación con PHP o JavaScript.
Ampliación de MediaWiki
MediaWiki ha sido diseñada para permitir modificaciones sin cambiar el "código del núcleo". Así se facilita la actualización a una nueva versión sin necesidad de fusionar manualmente en cambios del código anteriores. Hay seis puntos principales de extensión que permiten cambiar o expandir lo que hace MediaWiki. Los puntos de extensión son:
- API: para acceder a los datos y metadatos de instancias de MediaWiki por medio de su API web
- Enganches – cada vez que un determinado event ocurre, haz algo.
- Funciones del analizador sintáctico – para crear un nuevo comando como:
{{#if:...|...|...}}
. - Apariencias – para cambiar la apariencia de MediaWiki.
- Páginas especiales – para añadir una página especial nueva.
- Extensiones de etiquetas – para crear una nueva etiqueta como:
<newtag>...</newtag>
. - Extending wiki markup – add a parser hook to modify the content of wikitext.
Ayuda para desrrolladores de extensiones
- Manual:Desarrollo de extensiones – guía para desarrollar extensiones.
- Extensions FAQ
- Consulta la lista de Categoría: extensiones .
- Extension:BoilerPlate - una plantilla de extensión en blanco.
Ayuda para desarrolladores de apariencias
- Manual:Cómo hacer una apariencia (skin) de MediaWiki – instrucciones para crear una apariencia para MediaWiki.
- Manual:Configuración de apariencias – guía para configurar aparienciaa en una wiki.
Ayuda para la reutilización del código de bibliotecas
- Manual:Developing libraries – Una guía para empaquetar bibliotecas externas para su uso en MediaWiki
Notas
- ↑ No todo MediaWiki está escrito en PHP. Algunas herramientas de soporte están escritas en otros lenguajes, incluso batch files, shell scripts, makefiles y Python.
- ↑ MediaWiki funciona en la mayoría de las plataformas que soportan PHP. Sin embargo, la falta de ciertas utilidades o funciones del sistema operativo puede limitar la funcionalidad o el rendimiento de MediaWiki en plataformas que no soportan LAMP.
- ↑ Aparte de MySQL y MariaDB, MediaWiki tiene soporte para DBMS en PostgreSQL y SQLite.
- ↑ Los desarrolladores son una mezcla de voluntarios y personal de la Fundación Wikimedia (o contratados). Hay una lista completa de personas que trabajan en el código MediaWiki en el artículo Desarrolladores .
- ↑ Explora el código y las revisiones de los repositorios de código en Gerrit o descarga el código fuente a tu sistema usando Gerrit .