مرکز توسعه دهنده
این یک بررسی اجمالی سطح بالا از توسعه ی مدیاویکی است که شامل پیوندهایی به مستندات کلیدی منابع و ابزارهای در دسترس برای توسعه دهندگان مدیاویکی است. این برای توسعه دهندگان ماهر بسته نرم افزاری لمپ 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 بخش هایی از این صفحه برای یک دید کلی.
اسناد کلیدی
کد، توسعه و سبک
- سیاست توسعه – مروری بر سیاست های کلیدی توسعه.
- قراردادهای کدنویسی – آموزش نحوهٔ نوشتن کد به سبک مدیاویکی.
- Security for developers – بیاموزید که چگونه به حفظ امنیت MediaWiki کمک کنید.
- Manual:Pre-commit checklist – قبل از انجام کد ، این چک لیست را بخوانید.
- راهنمای نمای کلی کد – یک راهنما برای مشاهده کنندگان اعمال کد منبع مدیاویکی.
- Technical Decision Making Process – در مورد فرآیند تصمیم گیری در مورد ایجاد تغییرات فنی بزرگتر بخوانید.
اشکال زدایی و تست
- نحوهٔ اشکالزدایی – راهنمای اشکالزدایی مدیاویکی.
- Manual:Errors and symptoms – * کتابچه راهنما:خطاها و علایم – نمای کلی از خطاهای رایج مدیاویکی و علایم مرتبط کردنشان.
- تست مرورگر – یادگیری نوشتن تست های رایط کاربری برای مدیاویکی با استفاده از Selenium.
- امتحان کردن واحد – یادگرفتن نوشتن تست های بخش با استفاده از PHPUnit برای مدیاویکی.
- تست های مجتمع API – یادگیری نوشتن تست های مجتمع API برای مدیاویکی با استفاده از Mocha.
- Security for developers – یادگیری نحوه ی نوشتن کد امن.
معماری
- MediaWiki architecture – مقدمه ای بر معماری مدیاویکی
- Manual:Code – یک نمای کلی از قسمت های کلیدی کد منبع مدیاویکی
- Manual:چیدمان پایگاه داده – یک نمای کلی از شمای پایگاه داده مدیاویکی
- Manual:Global object variables – یک لیست جزيی از متغیرهای کلیدی سراسری.
- بومیسازی – یادگرفتن سیستم بین المللی کردن مدیاویکی.
- کتابچه راهنما فضای نام در این ویکی – اسناد یرای توسعه دهندگان.
- MediaWiki Class Reference – مستندات فنی تولید شده از کد منبع مدیاویکی (یادداشت: مرجع کلاس یک صفحه ی سنگین است و بارگذاری آن آرام است.)
زیرسامانهها
- 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 – یک قلاب تجزیه کننده برای اصلاح کردن محتوای ویکی تکست اضافه کن.
برای توسعه دهندگان افزونه کمک کن.
- دستی: در حال توسعه برنامه های افزودنی – یک راهنما برای توسعه دادن افزونه ها
- Extensions FAQ
- نگاه کن رده:افزونهها , برای یک لیست از افزونه ها.
- Extension:BoilerPlate - یک نمونه افزونه خالی.
کمک برای توسعه دهندگان پوسته
- Manual:How to make a MediaWiki skin – دستورالعمل های چگونگی ساخت یک پوسته برای مدیاویکی.
- Manual:Skin configuration – یک راهنمای پیکربندی کردن پوسته ها برای یک ویکی.
کمک برای کتابخانه کردن کد جهت استفاده مججد
- Manual:Developing libraries – یک راهنما برای بسته بندی کتابخانه های شخص ثالث جهت استفاده با مدیاویکی
یادداشت
- ↑ توسعه دهندگان یک ترکیبی از داوطلبان و کارمندان پرداخت شده (یا پیمانکاران) برای سازمان های مختلف هستند. برای یک لیست کامل از کسانی که روی کد مدیاویکی کار می کنند مقاله Developers را بخوانید.
- ↑ کد منبع و ویرایش های مخازن کد را در Gerrit مرور کنید یا کد منبع را با استفاده از گریت در سیستم خود دانلود کنید.