질문을 삭제하지 말아주세요.!
 
1
0
-1

서비스 프로바이더

파사드에 대해서 


메뉴얼을 아무리 봐도 잘 이해가 되지 않습니다.

정확한 사용법이나 예제좀 알수 있을까요 ?

    CommentAdd your comment...

    3 answers

    1.  
      1
      0
      -1

      공식 문서를 참고해서 원하는 기능을 구현해보고, 막히는 부분을 질문하시는게 좋을 듯 합니다. 워낙에 많은 유스케이스가 있어서 뭘 의도하는지 알 수 없습니다. 정말 극단적인 경우에는 애플리케이션 실행중에 필요한 객체를 생성할 때 원시 타입(scalar)으로 된 API Key등을 주입하는 목적으로 사용될 수 도 있습니다. 글로 설명하기는 굉장히 힘드네요.

      서비스 컨테이너(=~이름표가 달린 서랍장)에 서비스(=~이미 만든 객체 또는 객체를 만들 수 있는 레시피)를 등록하는 것이 서비스 프로바이더입니다. 라라벨의 파사드는 서비스 컨테이너에 등록된 객체에 접근하는 도구입니다.

      ---

      제가 짠 예제 프로젝트 중에서 앞서 언급한 예제 하나를 남겨놓습니다.

      API 서비스에서 모든 요청과 응답을 라라벨 로그에 남기되, 특정한 JSON 필드는 마스킹(난독화) 해야한다는 것이 요구사항입니다.

      글로 봐서는 이해가 안되기때문에, 가장 간단한 예제라도 삽질하면서 짜 보는 게 최선일 것 같습니다.

      ---

      다양한 유스케이스는 아래 링크를 읽어 보시기 바랍니다. 


        CommentAdd your comment...
      1.  
        1
        0
        -1

        개발 초보입니다. 공부하고 이해한대로 한번 말해볼게요.

        서비스 프로바이더는 이미 만들어진 기능들이고 config/app.php 의 providers 배열에 그 목록이 있습니다.

        모델이나 컨트롤러에서 이 만들어진 기능들을 사용하기 위해서는 의존성 주입을 해줘야합니다.

        의존성 주입은 사용하려는 기능을 불러오고 그 기능을 사용하려는 해당 클래스로의 주입

        두가지의 과정인데

        use Illuminate\Session\SessionServiceProvider

        이것은 세션기능을 사용하겠다는 선언.

        저렇게 선언해주고 초기화하는 __construct() 에서 타입힌트를 줘서 인자로 넣어주고 변수에 세팅.

        __construct(SessionServiceProvider $session){

            $this→sesstion = $session;

        }


        파사드는 위 단계 건너뛰고 단축키 같은 개념으로 DB::get() 이런식으로 바로 쓸 수 있는 것.


        ---------


        설명이 장황한데 같이 공부하는 입장이라 한번 적어봤습니다. 저도 저게 맞는지는 잘 모르겠습니다만..고수님들이 바로잡아 줄것이라 기대합니다..ㅋㅋ


        1. 안유성

          조언감사합니다 ^^


          제가 질문을 잘못올렸나봐요..


          기능은 알겠는데 사용방법을 모르겠어요 ;;

        2. 몽키

          내름 사용법까지 곁들인건데.... 고수님의 등장을 기다려야겠군요...ㅋㅋ

        CommentAdd your comment...
      2.  
        1
        0
        -1

        서비스 프로바이더는 드라이버고, 파사드는 바로가기 정도로 이해하시면 쉬울 것 같네요.

        1. 안유성

          조언감사합니다..


          이해가 잘되네요 ^^


          근데 사용방법을 모르겠어요 ㅠ..ㅠ

        CommentAdd your comment...