Laravel에서 사용자 지정 도우미 함수를 만드는 방법

Laravel은 애플리케이션 내 어디에서나 호출할 수 있는 많은 내장 헬퍼 함수를 ​​제공합니다. 배열 및 개체, 경로, 문자열, URL 및 기타 유형을 사용하여 작업할 때 작업 흐름을 편리하게 만듭니다.

laravel 코어에는 많은 헬퍼 함수가 정의되어 있지만 동일한 코드를 반복하지 않도록 laravel에서 헬퍼 함수를 ​​정의할 수 있습니다. 응용 프로그램의 더 나은 유지 관리성을 보장합니다.

Laravel과 PHP는 또한 어디에서나 호출할 수 있는 몇 가지 기본 함수를 제공하지만 컨트롤러와 뷰 또는 앱의 다른 부분 모두에서 필요한 사용자 정의 함수를 작성해야 할 때가 있습니다.

커스텀 Laravel 헬퍼 함수를 ​​생성하는 방법을 살펴보겠습니다.

Laravel에서 사용자 지정 도우미 함수를 만드는 방법



헬퍼 함수를 ​​포함하고 싶은 첫 번째 시나리오는 Laravel 애플리케이션의 컨텍스트 내에 있습니다. 기본 설정에 따라 도우미 파일 위치를 원하는 대로 구성할 수 있습니다. 그러나 다음은 몇 가지 권장 위치입니다.
  • 앱/helpers.php
  • 앱/Http/helpers.php

  • 저는 애플리케이션 네임스페이스의 루트에 있는 app/helpers.php에 광산을 보관하는 것을 선호합니다.

    /app 폴더 안에 helpers.php 파일을 생성해 봅시다.

    /app/helpers.php 파일을 열고 이 코드를 작성합니다.

    <?php
    
    if(!function_exists("generateUniqueToken")){
    
        function generateUniqueToken($size = 10,$table = null,$column = null)
        {
             $token = str_random($size);
    
             if($table && \DB::table($table)->where($column,$token)->count()){
                  generateUniqueToken($size, $table, $column);
             }
    
             return $token;
        }
    }
    


    여기에서는 고유한 토큰을 생성하기 위한 간단한 필수 기능을 정의했습니다.

    자동 로딩



    PHP 도우미 함수를 사용하려면 런타임에 프로그램에 로드해야 합니다. 내 경력 초기에는 파일 상단에서 이런 종류의 코드를 보는 것이 드문 일이 아니었습니다.

    require_once ROOT . '/helpers.php';
    


    PHP 함수는 자동 로드할 수 없습니다. 그러나 require 또는 require_once를 사용하는 것보다 Composer를 통한 더 나은 솔루션이 있습니다.

    새 라라벨 프로젝트를 생성하면, composer.json 파일에 autoload 및 autoload-dev 키가 표시됩니다:

    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    


    도우미 파일을 추가하려는 경우 자동 로드 내부에서 정의할 수 있는 파일 키(파일 경로 배열)가 작성기에 있습니다.

    "autoload": {
        "files": [
            "app/helpers.php"
        ],
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    


    파일 배열에 새 경로를 추가하면 오토로더를 덤프해야 합니다.

    cd <Go to your Laravel App Path> && composer dump-autoload
    


    이제 라라벨이 public/index.php에 Composer의 오토로더를 필요로 하기 때문에 모든 요청에서 helpers.php 파일이 자동으로 로드됩니다:

    require __DIR__.'/../vendor/autoload.php';
    


    앱 디렉토리에 helpers.php 파일을 보관하는 것이 마음에 들지 않으면(PSR-4 네임스페이스 클래스 파일이 아니기 때문에) 웹사이트의 laravel.com에서 수행하는 작업을 수행할 수 있습니다. helpers.php를 부트스트랩 디렉토리에 저장합니다. . composer.json 파일에서 다음과 같이 설정해야 합니다.

    "files": [
        "bootstrap/helpers.php"
    ]
    


    사용법 도우미 기능



    이제 응용 프로그램에서 사용자 지정 도우미 기능을 사용하는 방법을 살펴보겠습니다.

    보기로 사용




    <div>
         @php
            $token = generateUniqueToken(32, '<Table-Name>','<Column-Name>');
         @endphp
    
            {{ $token }}
     </div>
    


    컨트롤러에 사용




    $token = generateUniqueToken(32, '<Table-Name>','<Column-Name>');
    


    폐쇄 경로 사용




    <?php
    
    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\UserController;
    
    Route::get('/', function () {
        $token = generateUniqueToken(32, '<Table-Name>','<Column-Name>');
    
        echo $token;
    });
    


    이 블로그를 읽어주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기