Laravel 7 확장 개발 튜토리얼

Guanhui
풀어 주다: 2020-05-12 14:10:46
앞으로
2619명이 탐색했습니다.

다음은 Getting Started with Laravel 튜토리얼 칼럼에 실린 Laravel 7 확장 개발 튜토리얼을 소개한 내용입니다. 필요한 친구들에게 도움이 되길 바랍니다!

1단계. 새 프로젝트 만들기

저는 Laravel 설치 프로그램을 사용하는 것을 선호합니다.

laravel new lara-dg
로그인 후 복사

저는 테스트 및 패키지 개발에 SQLite를 사용하는 것을 선호합니다. .env 파일을 수정하세요:

DB_CONNECTION=sqlite
DB_DATABASE=/Users/ivan/code/packages/test-project/database/database.sqlite
로그인 후 복사

그런 다음 패키지 뼈대를 만들어 보겠습니다. CLI 도구를 사용하면 필요한 모든 파일이 생성됩니다.

composer require jeroen-g/laravel-packager
로그인 후 복사

그런 다음 빌드 명령을 실행할 수 있습니다. Webkid는 공급업체 이름(네임스페이스)을 나타내고 LaravelDiagnostic은 프로젝트 이름을 나타냅니다.

php artisan packager:new Webkid LaravelDiagnostic --i
로그인 후 복사

그런 다음 귀하와 패키지에 대한 정보를 입력하세요. 이제 다음과 같이 보일 것입니다:

Laravel 7 확장 개발 튜토리얼

Console Output

이제 프로젝트에 Webkid 디렉터리와 모든 필수 파일이 있는 패키지 폴더가 있습니다.

패키지는 작곡가를 통해 자동으로 로드됩니다. 저는 상대 경로를 사용하는 것을 선호합니다:

"repositories": {
    "webkid/laraveldiagnostic": {
        "type": "path",
        "url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"
    }
}
로그인 후 복사
로그인 후 복사

또한 필수 섹션이 자동으로 업데이트되지 않으면 수동으로 업데이트하세요. 공급업체 디렉터리에 패키지 디렉터리에 대한 심볼릭 링크가 생성됩니다.

"require": {
    "webkid/laraveldiagnostic": "*"
},
로그인 후 복사

이제 src 폴더에 클래스를 생성할 수 있지만 적절한 네임스페이스 WebkidLaravelDiagnostic이 있어야 합니다.

예를 들어 RunDiagnostic.php 클래스 파일이 있는 Commands 디렉터리가 있습니다. 따라서 다음과 같은 네임스페이스가 있어야 합니다.

namespace Webkid\LaravelDiagnostic\Commands;
로그인 후 복사

마이그레이션, 경로, 구성 파일, 보기 또는 리소스 파일(js, css, 이미지)을 사용하려면 서비스 공급자에서 이를 로드해야 합니다. 공식 문서에서 이에 대해 알아볼 수 있습니다. 이 예에서는 방금 명령을 사용했습니다. 내 LaravelDiagnosticServiceProvider에서 bootForConsole() 메서드를 살펴보세요.

public function bootForConsole()
{
    if ($this->app->runningInConsole()) {
        $this->commands([
            RunDiagnostic::class
        ]);
    }
}
로그인 후 복사

처음으로 패키지를 구성하려고 할 때 문제가 발생했기 때문에 개인적인 경험을 여러분과 공유하고 싶었습니다. 나는 모든 PHP 클래스를 src 폴더에 넣고 다른 모든 파일은 외부에 두는 것을 선호합니다. 예:

assets — 모든 CSS, js, 이미지 파일을 저장하는 데 사용

config — 모든 구성 파일을 저장하는 데 사용

migrations — 모든 마이그레이션 파일을 저장하는 데 사용

resources — 모든 보기 파일, lang 파일을 저장하는 데 사용

src — 서비스 공급자를 포함한 모든 PHP 클래스를 저장하는 데 사용됩니다.

다른 소프트웨어 패키지를 참조해야 하는 경우 소프트웨어 패키지의 작곡가.json 파일을 편집하여 추가해야 합니다.

"require": {
    "cviebrock/eloquent-sluggable": "^4.3"
}
로그인 후 복사

더 유용한 팁: 변경된 리소스를 동시에 테스트해야 하는 경우 공급업체 릴리스가 항상 반복되는 것을 피하기 위해 심볼릭 링크를 사용할 수 있습니다. 파일을 복사하는 대신 심볼릭 링크를 생성합니다. 이 방법을 사용하면 시간이 많이 절약됩니다

ln -s /path/to/your/project/webkid-cms/packages/webkid/cms/assets /path/to/your/project/webkid-cms/public/vendor/ cms

그런 다음 Composer의 자동 로딩을 업데이트하여 새 파일을 추가하세요.

composer dump-autoload
로그인 후 복사

2단계. 프로젝트를 GitHub에 올리세요

코드 베이스가 준비되면 패키지 디렉터리로 이동하여 Git 저장소를 초기화할 수 있습니다.

cd packages/Webkid/LaravelDiagnostic
git init
git add .
git commit -m "first commit"
로그인 후 복사

새 GitHub 저장소를 만들고 원본을 추가하세요.

git remote add origin git@github.com:yourusername/yourrepository.git
git push -u origin master
git tag -a 1.0.0 -m "release: First version"
git push --tags
로그인 후 복사

3단계. Packagist에 프로젝트 올리기

먼저 Packagist.org 웹사이트에 등록하세요. 내 GitHub 계정을 사용하여 가입하는 것을 선호합니다.

그런 다음 이 URL을 사용하여 새 패키지를 제출하세요. 패키지의 GitHub URL을 입력하고 확인을 클릭하세요. 오류가 발생하면 화면의 지시를 따르세요.

이전 단계를 완료하면 패키지의 packagist 페이지로 리디렉션되며 다음 알림을 받을 수 있습니다.

이 패키지는 자동으로 업데이트되지 않습니다. 푸시할 때마다 업데이트되도록 Packagist용 GitHub 서비스 후크를 설정하세요!

설정해 보겠습니다. 이 페이지에서 API 토큰을 얻은 다음 패키지의 GitHub 페이지를 방문하여 설정 / 웹후크 및 서비스 / 새 서비스 추가 인터페이스를 찾으세요. Packagist를 검색하고 이름과 토큰을 입력한 후 제출을 클릭하세요. Packagist 페이지에 표시된 오류는 5~10분 내에 사라져야 합니다.

축하합니다. 온라인에 유효한 패키지가 있으며 이제 작곡가를 통해 참조할 수 있습니다.

5단계. 패키지 폴더에서 계속하세요

이 소프트웨어 패키지를 개발하는 유일한 목적이 소프트웨어 패키지 개발을 돕는 것이라면 이 패키지 개발이 완료된 것입니다.

하지만 대규모 프로젝트에서 패키지를 개발했는데 지금 필요하다면 패키지 폴더에 코드를 보관하여 사용할 수 있습니다.

작업이 완료될 때마다 이 코드를 작곡가.json 파일

"repositories": {
    "webkid/laraveldiagnostic": {
        "type": "path",
        "url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"
    }
}
로그인 후 복사
로그인 후 복사

에서 제거한 다음 packagist에서 패키지를 가져올 수 있습니다.

읽어주셔서 감사합니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.

오픈소스에 기여하자!

추천 튜토리얼: "Laravel"

위 내용은 Laravel 7 확장 개발 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿