php教程 PHP开发 Laravel에서 자신만의 클래스 라이브러리를 사용하는 3가지 방법

Laravel에서 자신만의 클래스 라이브러리를 사용하는 3가지 방법

Dec 27, 2016 am 11:34 AM

Composer를 사용하면 많은 기존 라이브러리(packagist.org에 있는 라이브러리 등)를 재사용할 수 있지만 여전히 Composer와 호환되지 않는 일부 패키지나 라이브러리를 사용할 수 있습니다. 또한 특정 프로젝트에서는 특정 클래스 라이브러리를 생성할 수도 있으며 이를 작곡가 패키지로 만들지 않을 수도 있습니다. 이때 우리는 다음과 같은 방법으로 우리 고유의 클래스 라이브러리를 사용할 수 있습니다.

직접 인스턴스화할 수 있는 클래스 추가

프로젝트에서 직접 사용해야 하는 일부 클래스는 다음과 같이 Laravel에 추가할 수 있습니다. 방법

1. 클래스 라이브러리 파일 app/libraries/class/myClass.php
2. 파일 내용을 작성합니다

<span style="font-size: 16px;"><?php<br/>class Message {<br/>    public static function display() {<br/>    }<br/>}<br/>?><br/></span>
로그인 후 복사

app/start/globals.php에 클래스 가져오기 경로 추가

<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/>    app_path().&#39;/commands&#39;,<br/>    app_path().&#39;/controllers&#39;,<br/>    app_path().&#39;/models&#39;,<br/>    app_path().&#39;/database/seeds&#39;,<br/>    app_path().&#39;/libaries/class&#39;, // 在这里增加<br/>));<br/>?><br/></span>
로그인 후 복사

composer.json에 자동 로드 디렉터리 추가

<span style="font-size: 16px;">"autoload": {<br/>    "classmap": [<br/>        "app/commands",<br/>        "app/controllers",<br/>        "app/models",<br/>        "app/database/migrations",<br/>        "app/database/seeds",<br/>        "app/tests/TestCase.php",<br/>        "app/libraries/class"   //在这里增加<br/>    ]<br/>},<br/></span>
로그인 후 복사

1. Composer dump-autoload를 실행하여 가져오기 매핑 생성
2. 가져온 클래스를 사용하여 Message::display()

이 방법도 큐 클래스 방식과 관련하여 라라벨의 큐 처리 클래스가 어디에 위치해야 하는지 모르는 분들이 많습니다. 실제로 위의 방식에 따라 앱 디렉터리에 queues 디렉터리를 생성한 후 직접 인스턴스화할 수 있도록 허용합니다.

직접 호출할 수 있는 함수 추가

var_dump() 대신 v()를 사용하는 것을 선호하는 사람들도 있는데 매우 쉽습니다. Laravel에서 이를 수행하려면

1. 함수 파일 app/libraries/function/helper.php
2. 파일 내용을 작성합니다

<span style="font-size: 16px;"><?php <br/>function v($msg){<br/>    var_dump($msg);<br/>}<br/>?><br/></span>
로그인 후 복사

Composer에 파일을 추가하면 자동으로 목록의

<span style="font-size: 16px;">"autoload": {<br/>   "classmap": [<br/>       ...<br/>   ],<br/>   "files": [<br/>       "app/libraries/function/helper.php"<br/>   ],<br/>},<br/></span>
로그인 후 복사

을 가져오거나 프로젝트에 필요한 파일을 표시합니다. app/start/global.php를 열고 마지막에 추가하세요:

<span style="font-size: 16px;">require app_path().&#39;/libraries/function/helper.php&#39;;<br/></span>
로그인 후 복사

개인적으로 이 파일의 로딩 시간을 조절하고 싶다면 두 가지 방법 모두 괜찮다고 생각합니다. filter.php 파일에 다음 콘텐츠를 추가할 수도 있습니다

<span style="font-size: 16px;">App::before( function( $request ) {<br/>    require( "{$GLOBALS[&#39;app&#39;][&#39;path.base&#39;]}/app/libraries/function/helper.php" );<br/>});<br/></span>
로그인 후 복사

프로젝트에서 직접 v('hello world') 함수를 사용하세요.

추가 약간 더 복잡한 클래스 라이브러리

때때로 클래스 라이브러리가 하나의 파일 이상이기 때문에 다음 방법은 여러 파일과 여러 구조를 가진 클래스 라이브러리에 더 적합합니다.

psr0 또는 psr4 표준 디렉토리 구조를 만듭니다.

libraries
    Myapp
        Search (note directory is capitalized)
            Search.php
            SearchFacade.php
            SearchServiceProvider.php
        AnotherLib
로그인 후 복사

Myapp/Search/Search.php의 Search 클래스 네임스페이스는 MyappSearch입니다.

작곡기에서 자동 로드 수정

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/libraries",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
    ,
    "psr-0": {
         "Myapp": "app/libraries"
    }
},
로그인 후 복사

프로젝트에서 new MyappSearchSearch()를 사용하여 특정 클래스를 인스턴스화

요약

Laravel은 강제하지 않지만 어떤 방법이 가장 좋은지, 여러 사람이 협력하여 개발할 때 프로젝트 구조를 명확하게 하고 커뮤니케이션 비용을 많이 절약할 수 있는 일정한 표준이 있습니다.

Laravel에서 자신만의 클래스 라이브러리를 사용하는 3가지 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)