애플리케이션 플러그인 개발 규정
애플리케이션 플러그인 요구사항
- 플러그인은 저작권 침해 코드, 아이콘, 이미지 등을 포함해서는 안 됩니다.
- 플러그인 소스 코드는 완전한 코드여야 하며, 암호화해서는 안 됩니다.
- 플러그인은 완전한 기능을 제공하여야 하며, 간단한 기능일 수 없습니다.
- 완전한 기능 소개와 문서를 제공하여야 합니다.
- 플러그인은 하위 마켓을 포함해서는 안 됩니다.
- 플러그인 안에는 어떠한 텍스트나 홍보 링크도 포함해서는 안 됩니다.
애플리케이션 플러그인 식별
각 애플리케이션 플러그인은 알파벳으로 된 고유한 식별자가 있습니다. 이 식별자는 플러그인 소스 코드가 위치한 디렉토리 이름, 클래스 네임스페이스, 플러그인 데이터베이스 테이블 접두사에 영향을 미칩니다.
예를 들어, 개발자가 플러그인 식별자로 'foo'를 사용한다면, 플러그인 소스 코드 디렉토리는 {메인프로젝트}/plugin/foo
가 되고, 해당 플러그인의 네임스페이스는 plugin\foo
, 테이블 접두사는 foo_
가 됩니다.
식별자가 글로벌하게 고유하기 때문에, 개발자는 개발 전에 식별자의 사용 가능 여부를 확인해야 합니다. 확인할 수 있는 주소는 애플리케이션 식별자 확인입니다.
데이터베이스
- 테이블 이름은 소문자 알파벳
a-z
및 밑줄_
로 구성되어야 합니다. - 플러그인 데이터 테이블은 플러그인 식별자를 접두사로 사용해야 합니다. 예를 들어, foo 플러그인의 article 테이블은
foo_article
이어야 합니다. - 테이블 기본 키는 id여야 합니다.
- 스토리지 엔진은 통합 innodb 엔진을 사용해야 합니다.
- 문자 세트는 utf8mb4_general_ci를 사용해야 합니다.
- 데이터베이스 ORM은 라라벨 또는 think-orm을 사용할 수 있습니다.
- 시간 필드는 DateTime을 권장합니다.
코드 규칙
PSR 규칙
코드는 PSR4 오토로딩 규격을 준수해야 합니다.
대문자로 시작하는 낙타 표기법을 사용하여 클래스의 이름을 지어야 합니다.
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
}
소문자로 시작하는 낙타 표기법을 사용하여 클래스의 속성 및 메서드를 지어야 합니다.
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
/**
* 인증이 필요하지 않은 메서드
* @var array
*/
protected $noNeedAuth = ['getComments'];
/**
* 댓글 가져오기
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function getComments(Request $request): Response
{
}
}
주석
클래스의 속성 및 함수는 개요, 매개변수, 반환 유형을 포함한 주석이 있어야 합니다.
들여쓰기
들여쓰기는 탭 대신 4개의 공백으로 진행되어야 합니다.
흐름 제어
흐름 제어 키워드(if for while foreach 등)는 뒤에 공백 하나를 두어야 하며, 흐름 제어 코드 시작 중괄호는 종료 괄호와 같은 줄에 있어야 합니다.
foreach ($users as $uid => $user) {
}
임시변수 이름
소문자로 시작하는 낙타 표기법을 권장합니다(강제는 아님)
$articleCount = 100;