개발자 허브
이 문서는 미디어위키 개발을 위한 고수준 개요입니다. 이 문서에는 미디어 위키 개발자들을 위한 핵심 문서, 리소스, 툴의 링크가 포함되어 있습니다. 미디어위키를 사용해본 경험이 있는 숙련된 LAMP 개발자들을 위해 쓰여졌습니다.
- 만약 위키미디어 웹 API를 "사용하고" 싶으시다면 $1를 방문해주세요(작업중입니다).
- 위키미디어 소프트웨어 개발에 기여하고 싶다면, 새로운 개발자 을 확인하세요.
- 미디어위키와 미디어위키 확장기능 개발 시작을 위한 가이드가 필요하다면, 미디어위키 개발자가 되는 방법 을 읽어주세요.
- If you want to collaborate with other third-party MediaWiki users, the MediaWiki Stakeholders' Group (MWStake) is a MediaWiki user group consisting of MediaWiki developers, system administrators, users, consultants, and hosting providers.
개요
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]
개발은 오픈 소스 스타일로 이루어집니다[4]는 대부분 온라인에서 조정되고 Wikimedia Foundation에서 지원하지만 자원 봉사 커뮤니티 개발자도 큰 역할을합니다.
- 개발 토론는 다양한 메일링 리스트와 IRC 채널에서 이루어집니다. 메인 개발자 리스트는 wikitech-l에 있습니다. 메인 개발자의 IRC 채널은 #mediawiki connect와 $3입니다.
- 소스 코드는 Git의 버전 관리 시스템으로 관리됩니다.[5]
- 코드 리뷰는 게릿 에서 수행됩니다. 패치 내용을 제출하고 싶으시다면, 이 튜토리얼을 따라서 Git과 Gerrit을 설치하세요.
- Bug reports and tasks for most projects are managed on 파브리케이터 .
- 핵심 코드로 작업하는 대신 미디어위키로 확장이나 인터페이스를 개발을 하는 경우에는 API나 Hooks 시스템과 Skins 같은 편리한 확장 도구들을 사용할 수 있습니다. 이 페이지의 #미디어위키 확장 부분에서 볼 수 있습니다.
주요 문서
코드, 개발과 스타일
- Development policy – 핵심 개발 정책이 정리되어있습니다.
- 코딩 관례 – 미디어위키 형식으로 코드 작성하는 법을 배워보세요.
- Security for developers – 미디어위키 보안을 유지하는 법을 배워보세요.
- Manual:Pre-commit checklist – 코드를 적용하기 전에 읽어보세요.
- 코드 리뷰 가이드 - 미디어위키 소스 코드를 커밋하려는 리뷰어를 위한 가이드입니다.
- Technical Decision Making Process – read about the process to decide on making larger technical changes.
디버깅과 테스트
- 디버그하는 방법 – 미디어위키의 디버깅 가이드
- Manual:Errors and symptoms – 흔한 미디어위키 오류와 그에 따른 증상입니다.
- 브라우저 테스트 – 셀레늄을 사용해서 미디어위키의 UI 테스트를 하는 법을 배워보세요.
- 유닛 테스팅 - PHP 유닛을 사용해서 미디어위키의 유닛 테스트를 하는 법을 배워보세요.
- API integration tests – learn to write API integration tests for MediaWiki using Mocha.
- Security for developers – 보안 코드를 쓰는 법을 배워보세요.
구조
- MediaWiki 아키텍처 – an introduction to MediaWiki's architecture.
- Manual:Code – 미디어위키 소스코드의 주요한 부분에 대한 개요입니다.
- Manual:Database layout – 미디어위키 데이터베이스 스키마의 개요입니다.
- Manual:Global object variables – 핵심 글로벌 변수 목록입니다.
- 지역화 – 미디어위키의 글로벌화 체계에 대해 알아보세요.
- 메뉴얼 이 위키의 네임스페이스 - 개발자들을 위한 문서화
- 미디어위키 클래스 레퍼런스 - 미디어위키 소스코드에서 파생된 기술적인 문서. (참고: 클래스 레퍼런스가 커서, 페이지 로딩이 느릴 수 있습니다.)
하위 시스템
- API – 미디어위키 데이터베이스에 들어 있는 데이터로의 높은 수준의, 직접적인 접근을 제공합니다.
- ContentHandler – 페이지 내용의 커스텀을 돕기 위한 미디어위키의 프레임워크.
- Database access – 데이터베이스의 축약된 레이어로의 간결한 가이드를 포함하는, 미디어위키에서 데이터베이스를 사용하는 것에 대한 개요
- 작업 큐 – 오래 걸리는 작업을 비동기적으로 처리하는데 쓰이는 미디어위키의 프레임워크
- Messages API – PHP와 JS를 사용해 지역화된 애플리케이션 메시지를 제공하는 미디어위키의 프레임워크.
미디어위키 확장
미디어위키는 "핵심 코드"를 변경하는 일 없이 수정할 수 있도록 설계되었습니다. 이 덕분에 낡은 확장 기능 코드에 수작업으로 머지하는 일 없이 새로운 미디어위키의 버전을 간단하게 업데이트 할 수 있습니다. 6개의 주요 확장 기능이 있고 개발자들은 이를 통해 미디어위키가 할 수 있는 것을 바꾸거나 확장할 수 있습니다. 해당 확장 기능은 다음과 같습니다:
- API – 웹 API를 통해 미디어위키의 데이터와 메타데이터에 접근하세요.
- 훅 – 주어진 일이 일어날 때마다 무엇인가를 합니다.
- 파서 함수 – 다음과 같은 새로운 커맨드를 생성하세요:
{{#if:...|...|...}}
. - 스킨 – 미디어위키의 외형과 느낌을 변경합니다.
- 특수 문서 – 새로운 특수 페이지를 추가합니다.
- 태그 확장기능 – 새로운 태그를 작성합니다:
<newtag>...</newtag>
. - Extending wiki markup – add a parser hook to modify the content of wikitext.
확장 기능 개발자를 위한 도움말
- 메뉴얼:확장기능 개발 – 확장기능을 개발하는 방법에 대한 가이드
- Extensions FAQ
- Category:확장기능 에서는 확장기능 리스트를 볼 수 있습니다.
- Extension:BoilerPlate - 비어있는 확장 템플릿.
스킨 개발자를 위한 도움말
- 메뉴얼:미디어위키 스킨 만드는 방법 – 미디어위키 스킨을 만드는 방법
- 메뉴얼:스킨 설정 – 위키에 스킨을 구성하는 방법
라이브러리 코드 재사용을 위한 도움말
- Manual:Developing libraries – 미디어위키에서 사용할 타사 라이브러리 패키징에 대한 안내
참고
- ↑ 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 PostgreSQL and SQLite.
- ↑ 개발자는 다양한 조직의 자원 봉사자와 유급 직원 (또는 계약자)의 혼합입니다. 미디어 위키 코드에서 작업하는 사람의 전체 목록은 Developers 기사를 참조하십시오.
- ↑ $1에서 소스 코드 및 코드 리포지토리 개정판을 찾아 보거나 Gerrit를 사용하여 시스템에 소스 코드를 다운로드합니다.