laravel 5 서비스 provider 와 facade 를 만 드 는 방법 에 대한 자세 한 설명
laravel 5 는 facade 를 만 들 고 특정한 service 를 외관 에 등록 할 수 있 습 니 다.그러면 사용 할 때 귀 찮 게 use 할 필요 가 없습니다.글 은 하나의 예 로 service provider 와 facade 를 어떻게 만 드 는 지 설명 한다.
목표.
저 는 Ajax Response 의 facade 를 만 들 고 싶 습 니 다.이렇게 하면 contrller 에서 직접 이렇게 사용 할 수 있 습 니 다.
class MechanicController extends Controller {
public function getIndex()
{
\AjaxResponse::success();
}
}
그것 의 역할 은 되 돌아 오 는 형식 을 규범화 하 는 것 이다.
{
code: "0"
result: {
}
}
순서서비스 클래스 만 들 기
app/Service 폴 더 에 클래스 만 들 기
<?php namespace App\Services;
class AjaxResponse {
protected function ajaxResponse($code, $message, $data = null)
{
$out = [
'code' => $code,
'message' => $message,
];
if ($data !== null) {
$out['result'] = $data;
}
return response()->json($out);
}
public function success($data = null)
{
$code = ResultCode::Success;
return $this->ajaxResponse(0, '', $data);
}
public function fail($message, $extra = [])
{
return $this->ajaxResponse(1, $message, $extra);
}
}
이 Ajax Response 는 구체 적 인 실현 클래스 입 니 다.다음은 이 클래스 를 위해 provider 가 되 겠 습 니 다.provider 만 들 기
app/providers 폴 더 에 클래스 만 들 기
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AjaxResponseServiceProvider extends ServiceProvider {
public function register()
{
$this->app->singleton('AjaxResponseService', function () {
return new \App\Services\AjaxResponse();
});
}
}
여기 서 저희 가 register 에서 이 서비스 이름 을 Ajax Response Service 라 고 정 의 했 습 니 다.다음은 저희 가 또 하나의 얼굴 facade 를 정의 하 겠 습 니 다.
facade 만 들 기
app/Facades 폴 더 에 클래스 만 들 기
<?php namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class AjaxResponseFacade extends Facade {
protected static function getFacadeAccessor() { return 'AjaxResponseService'; }
}
프로필 수정자,다음은 app.php 에 이 두 개 만 마 운 트 하면 됩 니 다.
<?php
return [
...
'providers' => [
...
'App\Providers\RouteServiceProvider',
'App\Providers\AjaxResponseServiceProvider',
],
'aliases' => [
...
'Validator' => 'Illuminate\Support\Facades\Validator',
'View' => 'Illuminate\Support\Facades\View',
'AjaxResponse' => 'App\Facades\AjaxResponseFacade',
],
];
총결산laravel 5 에서 facade 를 사용 하 는 것 은 비교적 쉬 우 며,기본적으로 4 와 별 차이 가 없다.
더 많은 Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.,,,,,,및,
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel5 튜토리얼 블로그 돌아가기 (2) 블로그 기사 투고 양식 만들기전회까지로, DB·테이블의 설정을 할 수 있었으므로, 이번은 관리 화면측의 블로그 기사를 투고하는 폼을 만들어 갑니다. 우선, 보존 처리 등은 생각하지 않고, 간단하게 View 템플릿을 읽어 표시하는 것만의 처리를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.