안녕하세요! 우선 즐거운 명절 보내시길 바랍니다.
신규 템플릿문법 배울겸 이것 저것 만들어 보면서 인클루드시 변수 전달을 가지고 만지작 해봤는데요.. 아마 고수님들은 뭔 이런거 가지고...할 수도 있겠지만; 저한테는 너무 강력?하게 다가와서 밤을 태웠습니다. 한마디로 그냥 너무 좋습니다!
일단 라이믹스로 사이트를 만들다 보면 최근게시물 때문에 위젯을 생성해야하고 위젯스타일을 설정해줘야 하는 경우가 많았습니다. 저는 개인적으로 이 방식이 사용자를 배려하는데에 대해서 이해는 되지만 너무 불편했고 , <img> 태그로 위젯코드가 생성되는 이것도 뭔가 이상?하고 , 생성된 위젯의 디자인을 변경하려면 또 위젯폴더나 위젯스타일폴더를 오가면서 은근히 귀찮은 작업을 했었습니다. 귀차니즘때문에 개인적인 작업시에는 위젯을 만들거나 생성하지 않고 최근게시물 쿼리 코드와 기본디자인을 html파일 미리 작성하고 컴포넌트인것처럼 분장 시켜서 layout.html 또는 외부페이지안에 필요시 불러와 수정하며 사용했었습니다. 근데 이것도 사용하다 보면 은근히 코드가 지저분하고, 재사용이 불편했었으며 혼자 쓰기엔 좋지만 뭔가 바로 설정페이지에서 뚝딱거리며 사이트를 만드는 초보 사용자들 한테는 좋은 접근이 아니지요.
근데 이번 템플릿문법 v2 에서 인클루드시 변수 전달이 게임 체인저가 될것 같습니다. 간단한 최근게시물을 위한 코드를 보시죠.
@include ($layout_info->use_widget , [ 'title' => $layout_info->use_title , 'srl' => $layout_info->use_srl ? $layout_info->use_srl : 0 , 'listCount' => $layout_info->list_count ? $layout_info->list_count : 5 ])
이게 되더라구요?? 진짜 상당히 독립적이고 다이나믹하고 재사용이 가능한 컴포넌트를 만들수 있겠습니다. react/vue에서 처럼 props를 넘겨받아 쉽게 재사용 가능한 컴포넌트들을 보면서 군침을 안흘려도 되겠습니다.
꼭 최근게시물이 아니더라도 , 디자이너들은 컴포넌트만 잘 디자인해서 .html / .blade.php 파일로 여러가지 만들어 , 레이아웃 설정에서 초보 사용자들도 더 쉽게 디자인을 선택하고 변경하고 내용을 연결할수 있게 옵션을 제공하면, 만드는 자는 위젯/위젯스타일을 따로 만드는 귀차니즘은 없어지고 사용자들은 더 쉽고 직관적인 사용을 할수 있을것 같습니다. 물론 여러 경우와 고급적인 응용은 더 배우면서 테스트해봐야 알겠지만 , 현재 테스트된 부분들은 상당히 나이스하고 나이스했습니다.
혼자 알기엔 아까워서 끄적여봅니다. 혹시 더 나이스한 응용을 위한 힌트를 줄수 있으면 적극 남겨주세요! 감사합니다.
문법 @json도 눈에 띄는데 외부 api도 받아서 출력할수 있는건지 아직 어케 사용할지 몰라서 더 테스트 해봐야겠습니다.
새해 복 많이 받으세요!
그런데 저런 문법은 정규식으로 해석되는 거라, 너무 길거나 복잡한 내용을 넣으면 짝 맞는 괄호를 못 찾아서 엉뚱하게 해석될 수도 있습니다. 라라벨 블레이드 매뉴얼에서도 템플릿 문법 안에 배열 리터럴을 써넣는 것은 권장하지 않더군요. 웬만하면 배열을 별도로 선언하고 변수만 넘기시는 것을 추천합니다.^^