مرکز توسعه دهنده

This page is a translated version of the page Developer hub and the translation is 100% complete.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Tiếng Việt • ‎Türkçe • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎interlingua • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎suomi • ‎svenska • ‎čeština • ‎Ελληνικά • ‎български • ‎русский • ‎тоҷикӣ • ‎עברית • ‎العربية • ‎سنڌي • ‎فارسی • ‎සිංහල • ‎ไทย • ‎中文 • ‎日本語 • ‎粵語 • ‎ꯃꯤꯇꯩ ꯂꯣꯟ • ‎한국어
  • Community Noun project 2280.svg Users
  • Octicons-terminal.svg System Administrators
  • Source code project 1171.svg Developers
  • OOjs UI icon language-ltr.svg Translators

این یک بررسی اجمالی سطح بالا از توسعه ی مدیاویکی است که شامل پیوندهایی به مستندات کلیدی منابع و ابزارهای در دسترس برای توسعه دهندگان مدیاویکی است. این برای توسعه دهندگان ماهر بسته نرم افزاری لمپ LAMP که تجربه ی استفاده از مدیاویکی را دارند نوشته شده است.

  • اگر شما میخواهید از APIهای وب مدیاویکی استفاده کنید ببینید API:Web APIs hub (کار در حال انجام).
  • اگر شما میخواهید در توسعه ی نرم افزار مدیاویکی مشارکت کنید, ببینید New Developers .
  • برای آشنایی مقدماتی با توسعهٔ مدیاویکی و افزونه های مدیاویکی، How to become a MediaWiki hacker را بخوانید.
  • اگر می خواهید با سایر کاربران مدیاویکی شخص ثالث همکاری کنید, MediaWiki Stakeholders' Group (MWStake) هست یک مدیاویکی user group شامل توسعه دهندگان مدیاویکی, مدیران سیستم, کاربران , مشاوران, و ارایه دهندگان میزبانی.

دید کلی

مدیاویکی یک نرم افزار است که از ویکی پدیا, پروژه های خواهرش و هزاران ویکی از سراسر دنیا قدرت میگیرد.

مدیا ویکی به زبان برنامه نویسی PHP نوشته شده است.همه ی مدیاویکی به زبان PHP نوشته نشده اند. برخی از ابزارهای پشتیبانی به زبان های دیگری نوشته شده اند, شامل Shell script, Makefile و Python. از jQuery به عنوان کتابخانه جاوا اسکریپت کارخواه استفاده می کند.

مدیاویکی در درجه اول برای LAMP platform نوشته شده است مدیاویکی روی اغلب بسترهایی که از پی اچ پی پشتیبانی می کنند اجرا می شود, به هرحال, فقدان برخی از خدمات خاص یا ویژگی های سیستم عامل ممکن است عملکرد یا کارایی مدیاویکی روی بسترهای فاقد لمپ و اجراشدن روی اغلب سیستم های عامل را محدود کند. مدیاویکی در درجه اول از سرورهای پایگاه داده MySQL و MariaDB استفاده می کند. مدیاویکی از DBMS پشتیبانی می کند غیر از MySQL و MariaDB, شامل Oracle, PostgreSQL, SQLite, و Microsoft SQL Server.

توسعه در یک روش open source اتفاق می افتد[1], تا حد زیادی به صورت آنلاین هماهنگ است, و توسط بنیاد ویکی مدیا پشتیبانی شده است, اگرچه توسعه دهندگان جامعه داوطلب نیز نقش بزرگی را ایفا می کنند.

  • بحث دربارهٔ توسعه در چند میلینگ لیست و کانال آی‌آرسی انجام می‌شود. آدرس های لیست توسعه دهنده اصلی و کانال های آی آرسی توسعه دهنده ی اصلی
  • کد منبع با استفاده از سیستم کنترل نسخه Git مدیریت می شود.[2]
  • بررسی کد برای اکثر پروژه هایی که در گریت انجام می شود. این راهنما را دنبال کنید تا Git و Gerrit را به منظور ارایه تکه ها ارایه کنید.
  • گزارش های اشکال و کار در اکثر پروژه ها در Phabricator مدیریت می شوند.
  • توسعه دهندگان گسترش یا ارتباط با مدیاویکی (به جای کارکردن بر روی هسته ی کد) چندین امتیاز افزونه ای راحت دارد, شامل API, سیستم Hooks و پوسته ها - ببینید #Extending MediaWiki بخش هایی از این صفحه برای یک دید کلی.

اسناد کلیدی

کد، توسعه و سبک

اشکال زدایی و تست

معماری

  • Manual:Code – یک نمای کلی از قسمت های کلیدی کد منبع مدیاویکی
  • Manual:Database layout – یک نمای کلی از شمای پایگاه داده مدیاویکی
  • Manual:Global object variables – یک لیست جزيی از متغیرهای کلیدی سراسری.
  • بومی‌سازی – یادگرفتن سیستم بین المللی کردن مدیاویکی.
  • کتابچه راهنما فضای نام در این ویکی – اسناد یرای توسعه دهندگان.
  • MediaWiki Class Reference – مستندات فنی تولید شده از کد منبع مدیاویکی (یادداشت: مرجع کلاس یک صفحه ی سنگین است و بارگذاری آن آرام است.)
  • MediaWiki Virtual Library (MVL) – کتابچه های راهنما, راهنما ها, مجموعه ای از مقالات انتخاب شده.

زیرسامانه‌ها

  • API – API مدیاویکی دسترسی مستقیم, سطح بالا را به داده های موجود در پایگاه داده ی مدیاویکی فراهم می کند.
  • ContentHandler – چارچوب کاری مدیاویکی برای پشتیبانی کردن از انواع سفارشی از محتوای صفحه.
  • Database access – نمای کلی استفاده کردن از پایگاه داده های مدیاویکی, شامل راهنمای خلاصه از طرح مفهوم پایگاه داده.
  • Job queue – چارچوب کاری مدیاویکی برای پردازش کارهای طولانی مدت به صورت همزمان.
  • Messages API – چارچوب مدیاویکی برای فراهم کردن پیام های برنامه کاربردی محلی با PHP یا JavaScript.

توسعه مدیاویکی

مدیاویکی طراحی شده است تا به اصلاحات بدون تغییر دادن "هسته کد" اجازه دهد. این کار بروز رسانی به یک نسخه جدید از مدیاویکی را آسان می کند بدون اینکه مجبور به ادغام دستی تغییرات کد افزونه ی قدیمی باشید.شش نقطه ی افزونه ی اصلی وجود دارند که به توسعه دهندگان اجازه می دهد تا تغییر دهند یا گسترش دهند چیزی را که مدیاویکی میتواند انجام دهد.نقاط افزونه عبارتند از:

  • API – دسترسی به داده و ابرداده ی مدیاویکی از طریق API وب آن.
  • Hooks – هر وقت یک رویداد داده شده اتفاق افتاد, برخی کارها را انجام بده.
  • Parser functions – یک دستور جدید شبیه این بساز: {{#if:...|...|...}}.
  • Skins – دید و احساس مدیاویکی را تغییر بده.
  • Special pages – یک صفحه اختصاصی جدید اضافه کن.
  • Tag extensions – یک برچسب جدید شبیه این بساز: <newtag>...</newtag>.
  • Extending wiki markup – یک قلاب تجزیه کننده برای اصلاح کردن محتوای ویکی تکست اضافه کن.

برای توسعه دهندگان افزونه کمک کن.

کمک برای توسعه دهندگان پوسته

  • Manual:Skinning Part 1 – دستورالعمل های چگونگی ساخت یک پوسته برای مدیاویکی.
  • Manual:Skin configuration – یک راهنمای پیکربندی کردن پوسته ها برای یک ویکی.

کمک برای کتابخانه کردن کد جهت استفاده مججد

  • Manual:Developing libraries – یک راهنما برای بسته بندی کتابخانه های شخص ثالث جهت استفاده با مدیاویکی.

یادداشت

  1. توسعه دهندگان یک ترکیبی از داوطلبان و کارمندان پرداخت شده (یا پیمانکاران) برای سازمان های مختلف هستند. برای یک لیست کامل از کسانی که روی کد مدیاویکی کار می کنند مقاله Developers را بخوانید.
  2. کد منبع و اصلاحات مخزن های کد را در https://phabricator.wikimedia.org/diffusion/ مرور کنید یا کد منبع را با استفاده از Gerrit بر روی سیستم خود دانلود کنید.