نسخه:

راهنمای مشارکت

گزارش های اشکال

برای تشویق همکاری فعال، لاراول به شدت درخواست های کشش را تشویق می کند، نه فقط گزارش های باگ. درخواست‌های کششی فقط زمانی بررسی می‌شوند که به‌عنوان «آماده برای بررسی» علامت‌گذاری شوند (نه در حالت «پیش‌نویس») و همه آزمایش‌های ویژگی‌های جدید با موفقیت انجام شود. درخواست‌های کششی طولانی و غیرفعال که در حالت «پیش‌نویس» باقی مانده‌اند، پس از چند روز بسته می‌شوند.

با این حال، اگر یک گزارش اشکال ارسال کنید، مشکل شما باید حاوی عنوان و توضیح واضحی از مشکل باشد. همچنین باید تا آنجا که ممکن است اطلاعات مرتبط و نمونه کدی که مشکل را نشان می دهد درج کنید. هدف گزارش اشکال این است که تکرار اشکال و ایجاد یک رفع آن برای خود - و دیگران - آسان باشد.

به یاد داشته باشید، گزارش‌های اشکال به این امید ایجاد می‌شوند که دیگران با همین مشکل بتوانند برای حل آن با شما همکاری کنند. انتظار نداشته باشید که گزارش اشکال به طور خودکار هر فعالیتی را ببیند یا دیگران برای رفع آن بپرند. ایجاد یک گزارش اشکال برای کمک به خود و دیگران در شروع مسیر رفع مشکل است. اگر می‌خواهید وارد شوید، می‌توانید با رفع اشکال‌های فهرست‌شده در ردیاب‌های مشکل ما کمک کنید . برای مشاهده تمام مشکلات لاراول باید با GitHub احراز هویت شوید.

اگر هنگام استفاده از لاراول متوجه هشدارهای نادرست DocBlock، PHPStan یا IDE شدید، مشکل GitHub ایجاد نکنید. در عوض، لطفاً یک درخواست کشش برای رفع مشکل ارسال کنید.

کد منبع لاراول در GitHub مدیریت می شود و برای هر یک از پروژه های لاراول مخازنی وجود دارد:

سوالات پشتیبانی

ردیاب‌های مشکل GitHub لاراول برای ارائه کمک یا پشتیبانی لاراول در نظر گرفته نشده است. در عوض، از یکی از کانال های زیر استفاده کنید:

بحث توسعه هسته

می‌توانید ویژگی‌های جدید یا بهبود رفتار لاراول موجود را در تابلوی گفتگوی گیت‌هاب مخزن فریمورک لاراول پیشنهاد دهید . اگر ویژگی جدیدی را پیشنهاد می‌کنید، لطفاً مایل به پیاده‌سازی حداقل برخی از کدهایی باشید که برای تکمیل ویژگی مورد نیاز است.

بحث غیررسمی در مورد اشکالات، ویژگی های جدید و پیاده سازی ویژگی های موجود در #internals کانال سرور Laravel Discord صورت می گیرد . تیلور اتول، نگهدارنده لاراول، معمولاً در روزهای هفته از ساعت 8 صبح تا 5 بعدازظهر (UTC-06:00 یا آمریکا/شیکاگو) در کانال حضور دارد و در زمان‌های دیگر به صورت پراکنده در کانال حضور دارد.

کدام شعبه؟

همه رفع اشکال باید به آخرین نسخه ای که از رفع اشکال پشتیبانی می کند (در حال حاضر 11.x ) ارسال شود. رفع اشکال هرگز نباید به شعبه ارسال شود master ، مگر اینکه ویژگی هایی را که فقط در نسخه بعدی وجود دارد، اصلاح کنند.

ویژگی‌های جزئی که کاملاً با نسخه فعلی سازگار هستند، ممکن است به آخرین شعبه پایدار (در حال حاضر 11.x ) ارسال شوند.

ویژگی‌های اصلی یا ویژگی‌های جدید با تغییرات قطعی باید همیشه به شعبه‌ای ارسال شوند master که حاوی نسخه آینده است.

دارایی های تدوین شده

اگر تغییری را ارسال می‌کنید که روی فایل کامپایل‌شده تأثیر می‌گذارد، مانند بسیاری از فایل‌های موجود در resources/css مخزن resources/js ، laravel/laravel فایل‌های کامپایل‌شده را commit نکنید. به دلیل اندازه بزرگ، آنها را نمی توان به طور واقعی توسط یک نگهدار بررسی کرد. این می تواند به عنوان راهی برای تزریق کد مخرب به لاراول مورد سوء استفاده قرار گیرد. به منظور جلوگیری از این امر، تمامی فایل های کامپایل شده توسط نگهبانان لاراول تولید و متعهد خواهند شد.

آسیب پذیری های امنیتی

اگر آسیب‌پذیری امنیتی در لاراول کشف کردید، لطفاً یک ایمیل به Taylor Otwell ارسال کنید taylor@laravel.com . تمام آسیب پذیری های امنیتی به سرعت برطرف خواهد شد.

سبک کدنویسی

لاراول از استاندارد کدگذاری PSR-2 و استاندارد بارگذاری خودکار PSR-4 پیروی می کند .

PHPDoc

در زیر نمونه ای از بلوک اسناد لاراول معتبر آورده شده است. توجه داشته باشید که @param صفت با دو فاصله دنبال می شود، نوع آرگومان، دو فاصله دیگر و در نهایت نام متغیر:

/**
* Register a binding with the container.
*
* @param string|array $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
*
* @throws \Exception
*/
public function bind($abstract, $concrete = null, $shared = false)
{
// ...
}

هنگامی که ویژگی های @param یا @return به دلیل استفاده از انواع بومی اضافی هستند، می توان آنها را حذف کرد:

/**
* Execute the job.
*/
public function handle(AudioProcessor $processor): void
{
//
}

با این حال، زمانی که نوع بومی عمومی است، لطفاً نوع عمومی را با استفاده از @param یا @return ویژگی‌ها مشخص کنید:

/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}

StyleCI

اگر استایل کد شما کامل نیست نگران نباشید! StyleCI پس از ادغام درخواست‌های کششی، به‌طور خودکار هرگونه اصلاح سبک را در مخزن لاراول ادغام می‌کند. این به ما اجازه می دهد تا بر محتوای مشارکت تمرکز کنیم و نه سبک کد.

کد رفتار

کد رفتار لاراول از کد رفتاری روبی گرفته شده است. هرگونه نقض قوانین رفتاری ممکن است به Taylor Otwell گزارش شود ( taylor@laravel.com ):

  • شرکت کنندگان در برابر نظرات مخالف مدارا خواهند کرد.
  • شرکت کنندگان باید اطمینان حاصل کنند که زبان و اعمال آنها عاری از حملات شخصی و اظهارات شخصی توهین آمیز باشد.
  • هنگام تفسیر گفتار و اعمال دیگران، شرکت کنندگان باید همیشه نیت خوبی داشته باشند.
  • رفتاری که به طور منطقی بتوان آن را آزار و اذیت تلقی کرد، قابل تحمل نخواهد بود.