Developer hub/fa

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


 * اگر شما میخواهید از APIهای وب مدیاویکی استفاده کنید ببینید (کار در حال انجام).
 * اگر شما میخواهید در توسعه ی نرم افزار مدیاویکی مشارکت کنید, ببینید.
 * برای آشنایی مقدماتی با توسعهٔ مدیاویکی و افزونه های مدیاویکی، را بخوانید.
 * اگر می خواهید با سایر کاربران مدیاویکی شخص ثالث همکاری کنید, (MWStake)  هست یک مدیاویکی user group شامل توسعه دهندگان مدیاویکی, مدیران سیستم, کاربران, مشاوران, و ارایه دهندگان میزبانی.

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

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

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

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


 * بحث دربارهٔ توسعه در چند میلینگ لیست و کانال آی‌آرسی انجام می‌شود. لیست اصلی توسعه دهندگان wikitech-l دلار است. کانال های اصلی توسعه دهنده $IRC 2 و #wikimedia-dev دلار هستند.
 * کد منبع با استفاده از سیستم کنترل نسخه Git مدیریت می شود.
 * بررسی کد برای اکثر پروژه هایی که در $gerrit انجام می شود. این راهنما را دنبال کنید تا  Git و Gerrit را به منظور ارایه تکه ها ارایه کنید.
 * گزارش های اشکال و کار در اکثر پروژه ها در  |Phabricator مدیریت می شوند.
 * توسعه دهندگان گسترش یا ارتباط با مدیاویکی (به جای کارکردن بر روی هسته ی کد) چندین امتیاز افزونه ای راحت دارد, شامل API, سیستم Hooks و پوسته ها - ببینید #Extending MediaWiki بخش هایی از این صفحه برای یک دید کلی.

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


 * API – دسترسی به داده و ابرداده ی مدیاویکی از طریق API وب آن.
 *  – هر وقت یک رویداد داده شده اتفاق افتاد, برخی کارها را انجام بده.
 *  – یک دستور جدید شبیه این بساز:.
 *  – دید و احساس مدیاویکی را تغییر بده.
 *  – یک صفحه اختصاصی جدید اضافه کن.
 *  – یک برچسب جدید شبیه این بساز:.
 *  – یک قلاب تجزیه کننده برای اصلاح کردن محتوای ویکی تکست اضافه کن.