PHP Laravel 로컬 개발 설치 프로그램

여러 개의 백엔드 개발자와 더 많은 진행 중인 프로젝트를 가진 회사에서 여러 프로젝트 간에 개발자를 공유하는 것은 정상적인 상황이다.개발자의 측면에서 볼 때 이것은 이상적인 장면이 아니다. 왜냐하면 항상'상하문 전환'의 시간적 징벌이 있기 때문에 당신은 현재의 사고 상태에서 벗어나 새로운 프로젝트에 주의력을 집중해야 한다.이것은 이 새로운 프로젝트에서 남은 사용자 이야기와 임무를 읽고 이전 개발자가 남긴 코드 자체를 이해하는 것을 포함한다.
비록 우리는 첫 번째 부분에서 너무 많은 것을 할 수 없지만, 당신의 팀원들은 반드시 어떤 방식으로 당신이 새로운 프로젝트를 완성하도록 도와야 하지만, 우리는 우리의 코드 라이브러리로 일을 할 수 있어, 이렇게 하면 회사의 어떤 개발자도 그것을 쉽게 이해할 수 있다.지난 몇 년 동안, 우리는 일부 개발자들이 만약 다른 사람의 코드가 인코딩 스타일에 큰 차이가 있다면, 그들은 다른 사람의 코드를 계속 사용하기 어려울 것이라는 것을 발견했다. 왠지 모르게, 이 느낌은 매우 부자연스럽고 잘못된 것 같다. 너는 동의하지 않니?코드 라이브러리를 구축하는 문제도 있다. 특히 Laravel 같은 프레임워크를 사용할 때 같은 일을 실현할 수 있는 방법은 여러 가지가 있다.
다음은 우리가 지난 몇 년 동안 실현한 인코딩 스타일과 프로젝트 구조 간의 차이를 최대한 줄이는 방법을 알려주는 조언들입니다.

1. 마스터 프로젝트 템플릿
우리 회사에서 우리는 세 개의 개발 부서에 약 15명의 개발자를 보유하고 있다. 백엔드 개발Laravel PHP Framework, 전방 웹 개발Nuxt.js Framework, 모바일 응용 개발React Native이다.모든 개발자가 프로젝트를 완전히 독립적으로 시작하고 어떤 지도 원칙도 없이 매번 완전히 처음부터 시작한다고 상상해 보세요.밖이 엉망이 될 거야.프로젝트가 반쯤 진행되었을 때 그 사람을 옆에 앉히지 않고 계속 일할 수 있는 사람은 없다.
대신 부서의 모든 향후 프로젝트의 시작점이 될 마스터 템플릿(일부 회사에서는 뼈대 프로젝트 또는 베이스 템플릿)을 작성합니다.그래서 우리의 예에서 우리는 라빌,Nuxt가 하나 있다.js와 React 본체 메인 템플릿, 모든 항목이 본체에서 기원됩니다.마스터 템플릿은 일반적으로 팀 책임자가 유지 관리해야 하며, 특히 새 프레임워크 버전이 발표될 때 업데이트되지 않습니다.템플릿에는 새 프로젝트를 시작하는 데 필요한 모든 항목(예: UI 키트, 인증, 기본 컨트롤러 및 로직, 데이터베이스 설정, 설정, 사용자 관리 등)이 들어 있습니다.
모든 개발자가 템플릿에 익숙해지면 새로운 프로젝트로 전환하기 쉽다. 왜냐하면 당신의 모델, 컨트롤러, 사용자 정의 논리 등을 어디서 찾을 수 있는지 알고 있기 때문이다.

2. 코딩 스타일 강화
모든 개발자는 자신의 인코딩 스타일을 가지고 있는데 이것은 공유 프로젝트의 의미에서 문제가 될 수 있다.일부 도구는 개발자가 인코딩할 때 반드시 지켜야 할 규칙을 세우는 데 도움을 줄 수 있다.너는 한 가지 방식으로 한 가닥의 희망을 실현해야 한다. 그러면 팀의 대다수 사람들이 이것에 대해 만족할 것이다.

PHP
PHP에서 가장 많이 사용되는 도구 중 하나는 PHP Coding Standards Fixer입니다.문서에서 모든 내용을 읽을 수 있지만, 개발자는 가끔 수동으로 코드를 수정해야 합니다.다음에 우리는 어떻게 이 목표를 자동으로 실현하는지 배울 것이다.

JavaScript
JS에 대해 우리는 Prettier를 선택했는데 이것은 가장 유행하는 JS 코드 포맷 라이브러리 중의 하나이다.마찬가지로 개발자도 가끔 수동으로 실행해야 한다.
이 두 가지 도구는 모두 고유한 규칙을 가지고 있으므로, 특히 PHP CS Fixer 를 살펴보고 필요에 따라 조정하는 것이 좋습니다.

3. 코드의 정적 분석
이 단계는 매우 중요하다.우리는 Larastan라는 도구를 이용할 수 있는데 기본적으로 PHPStan와 Laravel이 지정한 포장기이다.이 도구는 코드에 대해 정적 분석을 실행하고 우리가 전혀 발견하지 못한 오류가 있는지 찾아낼 것입니다. 그러나 이 도구는 실행할 때 튀어나와 프로그램을 붕괴시킬 것입니다.
위의 절차와 마찬가지로 개발자는 반드시 수동으로 이 조작을 실행해야만 코드를 스캔할 수 있다.

4. 통합 및 자동화
만약 우리가 두 번째 단계를 완전히 자동화할 수 있다면, 그것은 그다지 좋지 않을 것이다.셋매번git제출 전에?그래, 우리는 할 수 있어. 이것이 바로 우리가 해야 할 일이야.매번 제출하기 전에, 우리는 전체 코드를 스캔하여, PHP와 JS의 규칙 집합에 따라 인코딩 스타일을 복원하고, 코드의 정적 분석을 실행하여 숨겨진 오류를 포착할 것입니다.가장 중요한 것은 그 중 어느 한 걸음이라도 뭔가를 잡으면 약속이 이루어지지 않도록 하는 것이다.반대로, 우리는 사용자에게 오류를 복구하고 다시 제출하도록 강요할 것이다.
우선, 사용자가 어떤 내용을 제출하려고 할 때마다 반응하는 'pre-commit' 갈고리를 설정해야 합니다.가장 간단한 방법은 brainmaestro/composer-git-hooks라는 가방을 사용하는 것이다.이 패키지는 설치 설명이 있습니다. 일부 이벤트 (예: "사전 제출") 에 사용자 정의git 연결을 추가할 수 있습니다.composer.json 파일에 패키지가 포함되면 scripts 섹션을 업데이트하고 다음을 추가해야 합니다.
"post-install-cmd": "cghooks add --ignore-lock",
"post-update-cmd": "cghooks update"
이것은 갈고리가 각각 composer installcomposer update 사건 이후에 업데이트된다는 것을 의미한다.여기서, 이 예를 간소화하기 위해서, 우리는 단계 2에 사용자 정의 스크립트를 추가할 수 있다.셋다음과 같이 하십시오.
"check-format": "php-cs-fixer fix --dry-run",
"format": "php-cs-fixer fix",
"analyse": "phpstan analyse"
package.json에서 JS fixer의 경우
"check-format": "prettier --check resources/assets/js/**/*.js",
"format": "prettier --write resources/assets/js/**/*.js"
이 스크립트가 있으면 우리는 지금 할 수 있다.
# scans the PHP code and reports for invalid coding style
composer check-format

# fixes the invalid PHP coding style
composer format

# scans the JS code and reports for invalid coding style
npm run check-format

# fixes the invalid JS coding style
npm run format

# runs static code analysis
composer analyse
현재 우리는 스크립트가 미리 제출된 사건이 발생할 때 무엇을 하는지 지도해야 한다.위의 모든 단계를 자동으로 수행하는 사용자 정의 스크립트를 만듭니다.먼저, Composer Git Hooks 패키지의 설명서처럼 extra 섹션에 대상 스크립트를 추가합니다.
"extra": {
    "laravel": {
        "dont-discover": []
    },
    "hooks": {
        "pre-commit": "./pre-commit.sh"
    }
},
현재 스크립트의 내용을 만들고 채우기 composer.json:
#!/bin/bash

npm run check-format
PRETTIER_EXIT_CODE=$?

if [ $PRETTIER_EXIT_CODE -ne 0 ]
then
    npm run format
fi


composer check-format
CS_FIXER_EXIT_CODE=$?

if [ $CS_FIXER_EXIT_CODE -ne 0 ]
then
    composer format
fi


composer analyse
PHP_STAN_EXIT_CODE=$?


if [ $PRETTIER_EXIT_CODE -ne 0 ] || [ $CS_FIXER_EXIT_CODE -ne 0 ] || [ $PHP_STAN_EXIT_CODE -ne 0 ]
then
    exit -1
fi
영어에서 스크립트는 이렇게 합니다.
  • JS 인코딩 스타일 검사
  • 해결할 일이 있으면 해결
  • PHP 인코딩 스타일 검사
  • 해결할 일이 있으면 해결
  • 코드
  • 에 대한 정적 분석 실행
  • 위의 모든 단계에서 오류
  • 가 보고되면 pre-commit.sh를 사용하여 종료합니다.
    미리 제출한 갈고리가 -1 다른 종료 코드로 종료될 때, 제출을 취소하고, 사용자는 다시 실행하거나 코드를 복원해야 합니다.

    결론
    여러 프로젝트와 개발자 사이에서 인코딩 스타일과 프로젝트 기반을 어떻게 유지하는지에 대해 알고 계십니다.Git Actions 또는 StyleCI 같은 타사 시스템으로 업그레이드할 수 있으며 사용자 정의 규칙과 규정을 사용하여 필요에 따라 완전히 사용자 정의할 수 있습니다.
    이 글을 읽어 주셔서 감사합니다!만약 네가 이것이 매우 재미있다고 생각한다면, 남겨 두는 것을 고려할 수 있다❤️, 🦄, 물론, 당신의 생각을 공유하고 평론하세요!
    로이드 은행은 합작을 진행하고 새로운 프로젝트를 개방할 수 있다.자세한 내용을 보려면 here를 클릭하십시오.
    그리고 우리를 따라오는 것을 잊지 마세요Facebook!

    좋은 웹페이지 즐겨찾기