Skip to content

기여 가이드

버그 제보

능동적인 협업을 장려하기 위해 Laravel은 단순한 버그 제보보다는 풀 리퀘스트를 적극 권장합니다. 풀 리퀘스트는 "검토 준비 완료" ( "초안" 상태가 아님)로 표시되고 새로운 기능에 대한 모든 테스트가 통과하는 경우에만 검토됩니다. "초안" 상태로 남아있는 활성 상태가 아닌 풀 리퀘스트는 며칠 후 닫힙니다.

그러나 버그 제보를 제출하는 경우, 이슈에는 제목과 문제에 대한 명확한 설명이 포함되어야 합니다. 또한 가능한 한 많은 관련 정보와 문제를 보여주는 코드 샘플을 포함해야 합니다. 버그 제보의 목표는 자신과 다른 사람들이 버그를 쉽게 재현하고 수정할 수 있도록 하는 것입니다.

버그 제보는 동일한 문제를 가진 다른 사람들이 문제 해결에 협력할 수 있기를 바라며 작성된다는 것을 기억하십시오. 버그 제보가 자동으로 활동을 보거나 다른 사람들이 수정하기 위해 달려들 것이라고 기대하지 마십시오. 버그 제보를 만드는 것은 자신과 다른 사람들이 문제를 해결하는 경로를 시작하는 데 도움이 됩니다. 참여하고 싶다면, 이슈 트래커에 나열된 버그를 수정하여 도움을 줄 수 있습니다. Laravel의 모든 이슈를 보려면 GitHub으로 인증해야 합니다.

Laravel을 사용하는 동안 부적절한 DocBlock, PHPStan 또는 IDE 경고를 발견하면 GitHub 이슈를 생성하지 마십시오. 대신, 문제 해결을 위해 풀 리퀘스트를 제출하십시오.

Laravel 소스 코드는 GitHub에서 관리되며 각 Laravel 프로젝트에 대한 저장소가 있습니다.

지원 질문

Laravel의 GitHub 이슈 트래커는 Laravel 도움말이나 지원을 제공하기 위한 것이 아닙니다. 대신 다음 채널 중 하나를 사용하십시오.

핵심 개발 논의

Laravel 프레임워크 저장소의 GitHub 토론 게시판에서 새로운 기능이나 기존 Laravel 동작 개선을 제안할 수 있습니다. 새로운 기능을 제안하는 경우 해당 기능을 완료하는 데 필요한 코드 일부라도 구현할 의향이 있어야 합니다.

버그, 새로운 기능 및 기존 기능 구현에 대한 비공식적인 논의는 Laravel Discord 서버#internals 채널에서 이루어집니다. Laravel 유지 관리자인 Taylor Otwell은 일반적으로 주중 오전 8시부터 오후 5시(UTC-06:00 또는 America/Chicago)까지 채널에 있으며, 다른 시간에는 간헐적으로 채널에 있습니다.

어느 브랜치로?

모든 버그 수정은 버그 수정을 지원하는 최신 버전(11.x)으로 보내야 합니다. 버그 수정은 향후 릴리스에만 존재하는 기능을 수정하는 경우가 아니면 master 브랜치로 절대 보내서는 안 됩니다.

현재 릴리스와 완전히 하위 호환되는 사소한 기능은 최신 안정화 브랜치(11.x)로 보낼 수 있습니다.

주요 새 기능 또는 호환성이 깨지는 변경 사항이 있는 기능은 항상 향후 릴리스를 포함하는 master 브랜치로 보내야 합니다.

컴파일된 자산

laravel/laravel 저장소의 resources/css 또는 resources/js에 있는 대부분의 파일과 같이 컴파일된 파일에 영향을 미치는 변경 사항을 제출하는 경우 컴파일된 파일을 커밋하지 마십시오. 크기가 너무 커서 유지 관리자가 현실적으로 검토할 수 없습니다. 이는 악성 코드를 Laravel에 주입하는 방법으로 악용될 수 있습니다. 이를 방어적으로 방지하기 위해 모든 컴파일된 파일은 Laravel 유지 관리자가 생성하고 커밋합니다.

보안 취약점

Laravel 내에서 보안 취약점을 발견한 경우 [email protected]으로 Taylor Otwell에게 이메일을 보내주십시오. 모든 보안 취약점은 즉시 처리됩니다.

코딩 스타일

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 행동 강령에서 파생되었습니다. 행동 강령 위반 사항은 Taylor Otwell([email protected])에게 보고할 수 있습니다.

  • 참가자는 반대되는 견해를 수용합니다.
  • 참가자는 자신의 언어와 행동에 개인적인 공격 및 비방적인 개인 비난이 없도록 해야 합니다.
  • 다른 사람의 말과 행동을 해석할 때 참가자는 항상 좋은 의도를 가정해야 합니다.
  • 합리적으로 괴롭힘으로 간주될 수 있는 행동은 허용되지 않습니다.