1. Введение
  2. Руководство по внесению вклада

Присоединяйся к нашему Telegram сообществу @webblend!

Здесь ты найдешь сниппеты по Laravel и полезные советы по веб-разработке.

Отчеты о багах

Чтобы поощрить активное сотрудничество, Laravel настоятельно рекомендует запросы на извлечение, а не только сообщения об ошибках. Запросы на извлечение будут рассмотрены только после пометки как "готово для рассмотрения" (не в состоянии "черновика") и прохождения всех тестов для новых функций. Зависающие, неактивные запросы на извлечение, оставленные в состоянии "черновика", будут закрыты через несколько дней.

Однако, если вы создаете сообщение об ошибке, ваш запрос должен содержать заголовок и четкое описание проблемы. Вы также должны включить как можно больше актуальной информации и кодовый образец, демонстрирующий проблему. Цель сообщения об ошибке - сделать легким для себя и других воспроизведение ошибки и разработку исправления.

Помните, что сообщения об ошибках создаются в надежде, что другие с такой же проблемой смогут с вами сотрудничать в ее решении. Не ожидайте, что сообщение об ошибке автоматически получит какую-либо активность или что другие сразу же начнут ее исправлять. Создание сообщения об ошибке служит помощью вам и другим начать путь к решению проблемы. Если вы хотите внести свой вклад, вы можете помочь, исправив любые ошибки, перечисленные в наших трекерах задач. Вы должны быть аутентифицированы в GitHub, чтобы просмотреть все задачи Laravel.

Если вы замечаете неправильный DocBlock, PHPStan или предупреждения IDE при использовании Laravel, не создавайте проблему в GitHub. Вместо этого предоставьте запрос на извлечение для исправления проблемы.

Исходный код Laravel управляется на GitHub, и есть репозитории для каждого из проектов Laravel:

Вопросы поддержки

Багтрекеры GitHub Laravel не предназначены для предоставления помощи или поддержки по Laravel. Вместо этого используйте один из следующих каналов:

Обсуждение ядра разработки

Вы можете предложить новые функции или улучшения существующего поведения Laravel на форуме обсуждений GitHub репозитория Laravel. Если вы предлагаете новую функцию, будьте готовы к реализации хотя бы части кода, необходимого для завершения функции.

Неформальные обсуждения багов, новых функций и реализации существующих функций происходят в канале #internals на сервере Laravel Discord. Тейлор Отвелл, сопровождающий Laravel, обычно присутствует в канале с понедельника по пятницу с 8:00 до 17:00 (UTC-06:00 или America/Chicago) и время от времени бывает в канале в другие времена.

Какую ветку использовать?

Все исправления ошибок должны быть отправлены в последнюю версию, которая поддерживает исправления ошибок (в настоящее время 10.x). Исправления ошибок никогда не должны отправляться в ветку master, если они исправляют функции, которые существуют только в предстоящем релизе.

Мелкие функции, полностью совместимые с текущим релизом, могут быть отправлены в последнюю стабильную ветку (в настоящее время 10.x).

Крупные новые функции или функции с изменениями, приводящими к нарушениям совместимости, всегда должны быть отправлены в ветку master, которая содержит предстоящий релиз.

Скомпилированные ресурсы

Если вы представляете изменение, которое повлияет на скомпилированный файл, такой как большинство файлов в resources/css или resources/js репозитория laravel/laravel, не фиксируйте скомпилированные файлы. Из-за их большого размера они не могут быть реалистично проверены сопровождающим. Это можно использовать в качестве способа внедрения вредоносного кода в Laravel. Для защиты от этого все скомпилированные файлы будут созданы и зафиксированы сопровождающими Laravel.

Уязвимости безопасности

Если вы обнаружили уязвимость безопасности в Laravel, отправьте электронное письмо Тейлору Отвеллу по адресу [email protected]. Все уязвимости безопасности будут незамедлительно устранены.

Стиль кодирования

Laravel следует стандарту кодирования PSR-2 и стандарту автозагрузки PSR-4.

PHPDoc

Ниже приведен пример допустимого блока документации Laravel. Обратите внимание, что атрибут @param следуется двумя пробелами, типом аргумента, еще двумя пробелами и, наконец, именем переменной:

/**
* Зарегистрировать привязку в контейнере.
*
* @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 избыточны из-за использования собственных типов, их можно удалить:

/**
* Выполнить задачу.
*/
public function handle(AudioProcessor $processor): void
{
//
}

Однако, если собственный тип является обобщенным, укажите обобщенный тип с использованием атрибутов @param или @return:

/**
* Получить вложения для сообщения.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}

StyleCI

Не беспокойтесь, если ваш стиль кодирования не идеален! StyleCI автоматически внесет все исправления стиля в репозиторий Laravel после объединения запросов на извлечение. Это позволяет нам сосредотачиваться на содержании вклада, а не на стиле кода.

Кодекс поведения

Кодекс поведения Laravel происходит от кодекса поведения Ruby. Все нарушения кодекса поведения можно сообщить Тейлору Отвеллу ([email protected]):

  • Участники должны быть терпимы к противоположным точкам зрения.
  • Участники должны гарантировать, что их язык и действия не содержат личных атак и оскорбительных замечаний.
  • Интерпретируя слова и действия других, участники всегда должны предполагать добрые намерения.
  • Поведение, которое можно справедливо считать домогательным, не будет терпеться.