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 .
- If you want to collaborate with other third-party MediaWiki users, the Grupo de interesados de MediaWiki (MWStake) is a MediaWiki user group consisting of MediaWiki developers, system administrators, users, consultants, and hosting providers.
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 – read about the process to decide on making larger technical changes.
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 – learn to write API integration tests for MediaWiki using 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 de análisis 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 .
- ↑ Browse the source code and revisions of code repositories in Gerrit or download the source code to your system by using Gerrit .