Developer hub/es



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.

Como guía introductoria al desarrollo de MediaWiki, lee cómo convertirte en un hacker de MediaWiki.

Puedes encontrar ayuda para la instalación o personalización de MediaWiki en el Centro del administrador de sistemas y para la utilización de MediaWiki en el Centro del usuario.

Descripción
MediaWiki está desarrollado al estilo código abierto usando el lenguaje de programación PHP principalmente para la plataforma LAMP. El desarrollo principal se coordina en gran parte online.


 * 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. Lee el artículo Developers para hacerte una idea de quien es la gente en las listas y los canales IRC.


 * El código fuente se gestiona mediante el sistema de control de revisiones Git. Lee el artículo Git para hacerte una idea de cómo utilizan Git los desarrolladores de MediaWiki. Lee el artículo [wikitech:Help:Access#Access FAQ] si quieres obtener acceso.


 * La revisión del código se realiza en Gerrit. Consulta este tutorial para ponerte en marcha con git y gerrit y poder enviar parches.


 * 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

 * Política de desarrollo: descripción de las principales políticas 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

 * Bugs: una descripción del seguimiento de errores en el proyecto MediaWiki.


 * How to debug: guía para depurar MediaWiki.


 * Manual:Errors and Symptoms: una descripción de errores más comunes en MediaWiki y los síntomas relacionados.


 * Selenium Framework: aprende a escribir pruebas de usabilidad para MediaWiki con Selenium.


 * Unit testing: aprende a escribir pruebas unitarias para MediaWiki con PHPUnit.


 * Seguridad: los problemas de seguridad se notifican en [mailto:security@wikimedia.org security@wikimedia.org].



Arquitectura

 * Manual:Código: una descripción de las partes principales del código fuente de MediaWiki.


 * Database layout: una descripción de los esquemas en las bases de datos de MediaWiki.


 * Global object variables: una lista de las principales variables globales.


 * Localización: aprende el sistema de internacionalización de MediaWiki.


 * Espacio de nombres Manual en esta wiki: documentación para desarrolladores.


 * [//doc.wikimedia.org/mediawiki-core/master/php/html/ 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).


 * Biblioteca virtual de MediaWiki: 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.


 * Database access: 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 varios puntos principales por extender que permiten cambiar o expandir lo que hace MediaWiki. Los puntos por extender son:


 * API: para acceder a los datos y metadatos de instancias de MediaWiki por medio de una potente API de web


 * Hooks: cada vez que un determinado event ocurre haz algo.


 * Parser Functions: para crear un nuevo comando como:


 * 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:

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:Skinning: instrucciones para crear una skin de MediaWiki.
 * Manual:Skin configuration: guía para configurar una skin en una wiki.

Usos de wikis de terceros

 * Centro empresarial: para wikis empresariales
 * Centro académico: para wikis académicas