>  기사  >  백엔드 개발  >  Laravel에서 자체 작성 클래스 라이브러리를 사용하는 3가지 방법

Laravel에서 자체 작성 클래스 라이브러리를 사용하는 3가지 방법

小云云
小云云원래의
2018-02-26 11:23:321666검색

이 글에서는 라라벨에서 자체 작성 클래스 라이브러리를 사용하는 세 가지 방법을 주로 소개합니다. 직접 인스턴스화할 수 있는 클래스를 추가하는 방법, 직접 호출할 수 있는 함수를 추가하는 방법, 약간 복잡한 클래스 라이브러리를 추가하는 방법에 대해 설명합니다. 필요하신 친구들에게 참고하시면 되고, 모두에게 도움이 되었으면 좋겠습니다.

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

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

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

1. 클래스 라이브러리 파일 app/libraries/class/myClass를 만듭니다. php
2. 파일 내용을 작성하세요

< ?php class Message {     public static function display() {
    } } ?>

app/start/globals.php

< ?php  ClassLoader::addDirectories(array(
    app_path().&#39;/commands&#39;,     
    app_path().&#39;/controllers&#39;,     
    app_path().&#39;/models&#39;,     
    app_path().&#39;/database/seeds&#39;,     
    app_path().&#39;/libaries/class&#39;, 
    // 在这里增加
)); ?>

composer.json에 자동 로드 디렉터리를 추가하세요

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php",
        "app/libraries/class"   //在这里增加
    ]
},

1. 작곡가 덤프-자동 로드를 실행하여 가져오기 매핑을 생성하세요.
2.사용한 클래스에서 직접 Message::display()를 호출하세요.

이 방법은 대기열 클래스를 추가하는 방법이기도 합니다. 많은 사람들이 Laravel에서 대기열 처리 클래스를 어디에 배치해야 하는지 모릅니다. 사실 위의 방법에 따르면 앱 디렉토리에 queues 디렉토리를 생성한 후 직접 인스턴스화하도록 합니다

직접 호출할 수 있는 함수를 추가합니다

어떤 사람들은 var_dump() 대신 v()를 사용하는 것을 좋아합니다. , Laravel에서 이 작업을 수행하는 것은 매우 쉽습니다

1. 함수 파일 app/libraries/function/helper.php
생성 2. 파일 내용 작성

< ?php 
 function v($msg){
     var_dump($msg);
 }
 ?>

파일을 작곡가 자동 가져오기 목록에 추가

"autoload": {
   "classmap": [
       ...
   ],
   "files": [
       "app/libraries/function/helper.php"
   ],
},

또는 표시하려면 프로젝트에 이 파일이 필요합니다. app/start/global.php를 열고 다음을 추가하세요:

require app_path().&#39;/libraries/function/helper.php&#39;;


개인적으로는 두 가지 방법 모두 괜찮습니다. 이 파일의 로딩 시간을 제어하고 싶다면 filter.php 파일에 다음 내용을 추가할 수도 있습니다.

App::before( function( $request ) 
{     require( "{$GLOBALS[&#39;app&#39;]
[&#39;path.base&#39;]
}
/app/libraries/function/helper.php" ); });

프로젝트에서 직접 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"
     }
 },


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

요약

Laravel에서는 어떤 방법이 가장 좋은지 강요하지 않지만 프로젝트 구조를 만들 수 있는 특정 표준이 있습니다. 여러 사람이 협력하여 개발하면 명확하고 통신 비용이 많이 절약됩니다.

위 내용은 Laravel에서 자체 작성 클래스 라이브러리를 사용하는 3가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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