애플리케이션 플러그인 개발 규정

애플리케이션 플러그인 요구사항

  • 플러그인은 저작권 침해 코드, 아이콘, 이미지 등을 포함해서는 안 됩니다.
  • 플러그인 소스 코드는 완전한 코드여야 하며, 암호화해서는 안 됩니다.
  • 플러그인은 완전한 기능을 제공하여야 하며, 간단한 기능일 수 없습니다.
  • 완전한 기능 소개와 문서를 제공하여야 합니다.
  • 플러그인은 하위 마켓을 포함해서는 안 됩니다.
  • 플러그인 안에는 어떠한 텍스트나 홍보 링크도 포함해서는 안 됩니다.

애플리케이션 플러그인 식별

각 애플리케이션 플러그인은 알파벳으로 된 고유한 식별자가 있습니다. 이 식별자는 플러그인 소스 코드가 위치한 디렉토리 이름, 클래스 네임스페이스, 플러그인 데이터베이스 테이블 접두사에 영향을 미칩니다.

예를 들어, 개발자가 플러그인 식별자로 '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;