Centro del desarrollador
![]() |
Usuarios | ![]() |
Administradores de sistema | ![]() |
Desarrolladores |
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 Web APIs hub (trabajo en progreso).
- If you want to contribute to developing Wikimedia software, see New Developers.
- Como guía introductoria al desarrollo de MediaWiki, lee cómo convertirte en un hacker de MediaWiki.
Descripción
MediaWiki is the software that powers Wikipedia, its sister projects and thousands of wikis all over the world.
MediaWiki is written in the PHP programming language[1]. It uses jQuery as the client JavaScript library.
MediaWiki is primarily written for the LAMP platform[2] and runs on most operating systems. MediaWiki primarily uses the MySQL and MariaDB database servers.[3]
MediaWiki está desarrollado al estilo código abierto[4] usando el lenguaje de programación PHP [5] principalmente para la plataforma LAMP[6][7]. El desarrollo principal se coordina en gran parte online.
For a full list of who works on the MediaWiki code, read the Developers article.</ref>, is largely coordinated online, and supported by the Wikimedia Foundation, though volunteer community developers play a huge part as well.
- La discusión sobre el desarrollo se realiza en varias listas de correo y canales IRC La principal lista del desarrollador es wikitech-l. Los canales del desarrollador son #mediawiki y #wikimedia-dev.
- El código fuente se gestiona mediante el sistema de control de revisiones Git.[8]
- La revisión del código se realiza en Gerrit . Consulta este tutorial para configurar git y gerrit y poder enviar parches.
- Bug reports and tasks for most projects are managed on 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.
- Security for developers: aprende a que MediaWiki esté segura.
- 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.
- Requests for Comment (RfC): para leer o sugerir nuevas funciones para el ecosistema de MediaWiki.
Depuración y pruebas
- Cómo depurar: guía para depurar MediaWiki.
- Manual:Errores y síntomas: una descripción de errores más comunes en MediaWiki y los síntomas relacionados.
- Browser testing – aprende a escribir pruebas de usabilidad para MediaWiki con Selenium.
- Pruebas unitarias: aprende a escribir pruebas unitarias para MediaWiki con PHPUnit.
- Security for developers : aprende a escribir código seguro.
Arquitectura
- Manual:Código: una descripción de las partes principales del código fuente de MediaWiki.
- Esquema de base de datos: una descripción de los esquemas en las base de datos de MediaWiki.
- Variables de objetos globales: 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 del código fuente de MediaWiki. (Nota: la referencia de clases es un página grande de carga lenta).
- Categoría:Biblioteca virtual de MediaWiki (MVL) – manuales, guías, colecciones de artículos seleccionados.
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
- Hooks: cada vez que un determinado event ocurre haz algo.
- Parser Functions: para crear un nuevo comando como:
{{#if:...|...|...}}
- Apariencias: para cambiar la apariencia y la sensación 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:Developing extensions: guía para desarrollar extensiones.
- Project:WikiProject Extensions
- Extensions FAQ
- Consulta la lista de Category:Extensions.
- Manual:$wgExtensionFunctions: para retrasar la instalación de extensiones (o ejecutar otras callbacks) para después de que el núcleo de MediaWiki esté preparado.
- Extension:BoilerPlate: una plantilla de extensión en blanco.
Ayuda para desarrolladores de apariencias
- Manual:Apariencias Parte 1: 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
Usos de wikis de terceros
- Enterprise hub - para wikis empresariales
- Centro académico - para wikis académicas
Notas
- ↑ Not all of MediaWiki is written in PHP. Some supporting tools are written in other languages, including batch files, shell scripts, makefiles and Python.
- ↑ MediaWiki runs on most platforms that can support PHP, however, the lack of certain utilities or operating system features may limit the functionality or performance of MediaWiki on non-LAMP platforms.
- ↑ MediaWiki has support for DBMS other than MySQL and MariaDB, including Oracle, PostgreSQL, SQLite, and Microsoft SQL Server.
- ↑ 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 Developers.
- ↑ No todo el 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, MediaWiki tiene soporte para DBMS en Oracle, PostgreSQL y SQLite.
- ↑ Browse the source code and revisions of code repositories at https://phabricator.wikimedia.org/diffusion/ or download the source code to your system by using Gerrit.