개발자 허브

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Developer hub and the translation is 100% complete.

Other languages:
العربية • ‎български • ‎català • ‎čeština • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎فارسی • ‎suomi • ‎français • ‎galego • ‎עברית • ‎Bahasa Indonesia • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎سنڌي • ‎සිංහල • ‎тоҷикӣ • ‎ไทย • ‎Türkçe • ‎Tiếng Việt • ‎粵語 • ‎中文
Crystal Clear app display.png 사용자User hub Nuvola-inspired-terminal.svg 시스템 관리자Sysadmin hub Source code project 1171.svg 개발자Developer hub

이 문서는 미디어위키 개발을 위한 높은 레벨의 개요입니다. 이 문서에는 미디어 위키 개발자들을 위한 핵심 문서, 리소스, 툴로의 링크가 포함되어 있습니다. 미디어위키를 사용해본 경험이 있는 숙련된 LAMP 개발자들을 위해 쓰여졌습니다.

개요

미디어위키는 PHP 프로그래밍 언어를 사용하여[1] 오픈소스 스타일로 개발되었는데[2] 주로 LAMP 플랫폼을 위한 것입니다[3][4]. 핵심 개발은 주로 온라인 협업으로 이루어집니다.

  • 개발 토론는 다양한 메일링 리스트IRC 채널에서 이루어집니다. 메인 개발자 리스트는 wikitech-l에 있습니다. 메인 개발자의 IRC 채널은 #mediawiki#wikimedia-dev입니다.
  • 소스 코드Git의 버전 관리 시스템으로 관리됩니다.[5]
  • 코드 리뷰게릿Gerrit에서 수행됩니다. 패치 내용을 제출하고 싶으시다면, 이 튜토리얼을 따라서 Git과 Gerrit을 설치하세요.
  • Bug reports and tasks for most projects are managed on Phabricator.
  • 핵심 코드로 작업하는 대신 미디어위키로 확장이나 인터페이스를 개발을 하는 경우에는 APIHooks 시스템과 Skins 같은 편리한 확장 도구들을 사용할 수 있습니다. 이 페이지의 #미디어위키 확장 부분에서 볼 수 있습니다.

주요 문서

코드, 개발과 스타일

디버깅과 테스트


구조

하위 시스템

  • API – 미디어위키 데이터베이스에 들어 있는 데이터로의 높은 수준의, 직접적인 접근을 제공합니다.
  • ContentHandler – 페이지 내용의 커스텀을 돕기 위한 미디어위키의 프레임워크.
  • Database accessManual:Database access – 데이터베이스의 축약된 레이어로의 간결한 가이드를 포함하는, 미디어위키에서 데이터베이스를 사용하는 것에 대한 개요
  • Job queueManual:Job queue – 오래 걸리는 작업을 비동기적으로 처리하는데 쓰이는 미디어위키의 프레임워크
  • Messages APIManual:Messages API – PHP와 JS를 사용해 지역화된 애플리케이션 메시지를 제공하는 미디어위키의 프레임워크.

미디어위키 확장

미디어위키는 "핵심 코드"를 변경하는 일 없이 수정할 수 있도록 설계되었습니다. 이 덕분에 낡은 확장 기능 코드에 수작업으로 머지하는 일 없이 새로운 미디어위키의 버전을 간단하게 업데이트 할 수 있습니다. 6개의 주요 확장 기능이 있고 개발자들은 이를 통해 미디어위키가 할 수 있는 것을 바꾸거나 확장할 수 있습니다. 해당 확장 기능은 다음과 같습니다:

  • API – 웹 API를 통해 미디어위키의 데이터와 메타데이터에 접근하세요.
  • Hooks - 주어진 일이 일어날 때마다 무엇인가를 합니다.
  • 파서 기능 - 다음과 같은 새로운 커맨드를 생성하세요: {{#if|...|...|...}}
  • 스킨 - 미디어위키의 외형과 느낌을 변경합니다.
  • 특수 페이지 - 새로운 특수 페이지를 추가합니다.
  • 태그 확장 - 새로운 태그를 작성합니다: <newtag>...</newtag>

확장 기능 개발자를 위한 도움말

스킨 개발자를 위한 도움말

라이브러리 코드 재사용을 위한 도움말

제 3자의 위키 사용

참고

  1. 모든 미디어위키가 PHP로 쓰여진 것은 아닙니다. 몇몇 지원 도구들은 다른 언어로 쓰여졌습니다. 예를 들면, 배치 파일, 셸 스크립트, makefiles and 파이썬이 있습니다.
  2. 개발자들은 자원봉사자들과 다양한 단체에서 보수를 받는 직원들입니다. 미디어위키 코드를 위해 일하는 사람들의 리스트를 원한다면, DevelopersDevelopers 페이지를 읽어주세요.
  3. 미디어위키는 PHP를 지원하는 모든 플랫폼에서 작동하지만, 몇몇 기능과 작동 시스템의 부재로 LAMP가 아닌 플랫폼에서는 작동이 제한될 수 있습니다.
  4. 미디어위키는 DBMS 말고도 MySQL, MariaDB, Oracle, PostgreSQL, SQLite을 지원합니다.
  5. https://phabricator.wikimedia.org/diffusion/MW/에서 소스코드와 버전을 확인하거나 다음 Git 커맨드를 사용해서 개발 버전을 클론하세요:git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git MediaWiki