이 글에서는 라라벨에서 자체 작성 클래스 라이브러리를 사용하는 세 가지 방법을 주로 소개합니다. 직접 인스턴스화할 수 있는 클래스를 추가하는 방법, 직접 호출할 수 있는 함수를 추가하는 방법, 약간 복잡한 클래스 라이브러리를 추가하는 방법에 대해 설명합니다. 필요하신 친구들에게 참고하시면 되고, 모두에게 도움이 되었으면 좋겠습니다.
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().'/commands', app_path().'/controllers', app_path().'/models', app_path().'/database/seeds', app_path().'/libaries/class', // 在这里增加 )); ?>
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().'/libraries/function/helper.php';
개인적으로는 두 가지 방법 모두 괜찮습니다. 이 파일의 로딩 시간을 제어하고 싶다면 filter.php 파일에 다음 내용을 추가할 수도 있습니다.
App::before( function( $request ) { require( "{$GLOBALS['app'] ['path.base'] } /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 중국어 웹사이트의 기타 관련 기사를 참조하세요!