공식 문서를 참고해서 원하는 기능을 구현해보고, 막히는 부분을 질문하시는게 좋을 듯 합니다. 워낙에 많은 유스케이스가 있어서 뭘 의도하는지 알 수 없습니다. 정말 극단적인 경우에는 애플리케이션 실행중에 필요한 객체를 생성할 때 원시 타입(scalar)으로 된 API Key등을 주입하는 목적으로 사용될 수 도 있습니다. 글로 설명하기는 굉장히 힘드네요.
서비스 컨테이너(=~이름표가 달린 서랍장)에 서비스(=~이미 만든 객체 또는 객체를 만들 수 있는 레시피)를 등록하는 것이 서비스 프로바이더입니다. 라라벨의 파사드는 서비스 컨테이너에 등록된 객체에 접근하는 도구입니다.
---
제가 짠 예제 프로젝트 중에서 앞서 언급한 예제 하나를 남겨놓습니다.
API 서비스에서 모든 요청과 응답을 라라벨 로그에 남기되, 특정한 JSON 필드는 마스킹(난독화) 해야한다는 것이 요구사항입니다.
글로 봐서는 이해가 안되기때문에, 가장 간단한 예제라도 삽질하면서 짜 보는 게 최선일 것 같습니다.
---
다양한 유스케이스는 아래 링크를 읽어 보시기 바랍니다.
개발 초보입니다. 공부하고 이해한대로 한번 말해볼게요.
서비스 프로바이더는 이미 만들어진 기능들이고 config/app.php 의 providers 배열에 그 목록이 있습니다.
모델이나 컨트롤러에서 이 만들어진 기능들을 사용하기 위해서는 의존성 주입을 해줘야합니다.
의존성 주입은 사용하려는 기능을 불러오고 그 기능을 사용하려는 해당 클래스로의 주입
두가지의 과정인데
use Illuminate\Session\SessionServiceProvider
이것은 세션기능을 사용하겠다는 선언.
저렇게 선언해주고 초기화하는 __construct() 에서 타입힌트를 줘서 인자로 넣어주고 변수에 세팅.
__construct(SessionServiceProvider $session){
$this→sesstion = $session;
}
파사드는 위 단계 건너뛰고 단축키 같은 개념으로 DB::get() 이런식으로 바로 쓸 수 있는 것.
---------
설명이 장황한데 같이 공부하는 입장이라 한번 적어봤습니다. 저도 저게 맞는지는 잘 모르겠습니다만..고수님들이 바로잡아 줄것이라 기대합니다..ㅋㅋ
서비스 프로바이더는 드라이버고, 파사드는 바로가기 정도로 이해하시면 쉬울 것 같네요.
조언감사합니다..
이해가 잘되네요 ^^
근데 사용방법을 모르겠어요 ㅠ..ㅠ
서비스 프로바이더
파사드에 대해서
메뉴얼을 아무리 봐도 잘 이해가 되지 않습니다.
정확한 사용법이나 예제좀 알수 있을까요 ?