Laravel에서 사용자 지정 도우미 함수를 만드는 방법
laravel 코어에는 많은 헬퍼 함수가 정의되어 있지만 동일한 코드를 반복하지 않도록 laravel에서 헬퍼 함수를 정의할 수 있습니다. 응용 프로그램의 더 나은 유지 관리성을 보장합니다.
Laravel과 PHP는 또한 어디에서나 호출할 수 있는 몇 가지 기본 함수를 제공하지만 컨트롤러와 뷰 또는 앱의 다른 부분 모두에서 필요한 사용자 정의 함수를 작성해야 할 때가 있습니다.
커스텀 Laravel 헬퍼 함수를 생성하는 방법을 살펴보겠습니다.
Laravel에서 사용자 지정 도우미 함수를 만드는 방법
헬퍼 함수를 포함하고 싶은 첫 번째 시나리오는 Laravel 애플리케이션의 컨텍스트 내에 있습니다. 기본 설정에 따라 도우미 파일 위치를 원하는 대로 구성할 수 있습니다. 그러나 다음은 몇 가지 권장 위치입니다.
저는 애플리케이션 네임스페이스의 루트에 있는 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;
});
이 블로그를 읽어주셔서 감사합니다.
Reference
이 문제에 관하여(Laravel에서 사용자 지정 도우미 함수를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sureshramani/how-to-create-custom-helper-functions-in-laravel-365p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)