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

This page is a translated version of the page Developer hub and the translation is 100% complete.
  • کاربران
  • مدیران سامانه
  • توسعه‌دهندگان
  • مترجمان


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

  • اگر می‌خواهید از APIهای وب ویکی‌مدیا «استفاده کنید»، به the Developer Portal مراجعه کنید.
  • اگر شما میخواهید در توسعه ی نرم افزار مدیاویکی مشارکت کنید, ببینید توسعه دهندگان جدید .
  • برای آشنایی مقدماتی با توسعهٔ مدیاویکی و افزونه های مدیاویکی، چگونه یک هکر مدیا‌ویکی شویم را بخوانید.
  • اگر می خواهید با سایر کاربران مدیاویکی شخص ثالث همکاری کنید, MediaWiki Stakeholders' Group (MWStake) هست یک مدیاویکی user group شامل توسعه دهندگان مدیاویکی, مدیران سیستم, کاربران , مشاوران, و ارایه دهندگان میزبانی.

مرور کلی

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

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

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

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

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

اسناد کلیدی

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

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

معماری

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

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

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

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

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

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

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

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

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

یادداشت

  1. توسعه دهندگان یک ترکیبی از داوطلبان و کارمندان پرداخت شده (یا پیمانکاران) برای سازمان های مختلف هستند. برای یک لیست کامل از کسانی که روی کد مدیاویکی کار می کنند مقاله Developers را بخوانید.
  2. کد منبع و ویرایش های مخازن کد را در Gerrit مرور کنید یا کد منبع را با استفاده از گریت در سیستم خود دانلود کنید.