그누보드 개발자 분들을 위한 laravel 패키지 > 자유게시판

자유게시판

그누보드 개발자 분들을 위한 laravel 패키지 정보

그누보드 개발자 분들을 위한 laravel 패키지

본문

 

3067123789_1593098844.3038.png

구라(GuLa) 입니다 ㅋㅋㅋㅋ

 

그누보드는 외주용 라라벨은 개인 프로젝트나, 공부용으로 사용중인데,

슬슬 laravel이 익숙해서 laravel로 만들때 기존의 그누보드로 만든 사이트들과

연동이 힘들다 보니 릴레이션 정도만들어 쓰던 모델들을 조금 다듬어 패키지로 만들어 봤습니다.

 

간단한 예제를 들자면,

만약 free, notice, event 게시판에 mb_id가 test123인 유저가 쓴 글을 가져오고 싶다면,

기존에는

foreach (['free', 'notice', 'event'] as $board) {

    $result = sql_query("SELECT * FROM g5_write_{$board} WHERE mb_id = 'test123'");

    for ($i = 0; $row = sql_fetch_array($result); $i++) { 

        $posts[] = $row;

    }

}

이런식으로 (더 나은 방법이 있을겁니다) 가져오지만,

 

GuLa를 설치한 laravel에선,

G5Member class를 확장해 각 게시판과 릴레이션을 추가한 후

G5Member::where('mb_id', '=', 'test123')->with(['free' ,'notice', 'event'])->get();

혹은 

G5Member::whereMbId('test123')->with(['free' ,'notice', 'event'])->get();

요렇게 심플하게 바뀝니다.

 

편하기는 한데 laravel에 대한 지식이 어느정도 필요하고 퍼포먼스적인 부분을 위한 최적화가 필요할 수 있어서 (그리고 저도 아직 개발에 미숙하다보니) 사용에 어려움이 있을 수 있을 수 있지만, 빡신 개발을 하시는 분들에게 조금이나마 도움이 되었으면 합니다.

추천
8

댓글 9개

드디어 그누보드와 연동된 Restful API가 만들어 지나요?  그누보드 데이타 베이스와의 연동에 매번 실패했었는데..
빨리 API가 나왔으면 좋을 것 같습니다.  당장이라도 테스트해보고 싶네요

저도 최근에 Relationship 때문에,  강제로 모두 id를 넣어 볼까도 생각하다가,
아예 라라벨 전용으로 데이타베이스를 만들어 볼까도 생각하다가 말았습니다.

블로그에 있는 DB 스키마를 올려 주실수 있나요? 공부차 한번 보고 싶네요
https://blog.silnex.kr/laravel-gula-library/ 요거 말씀하시는 것 같은데 스키마는 그누보드에 스키마를 그대로 사용합니다ㅎ
다만 laravel relation 외래키 부분을 강제로 mb_id로 설정해서 구라(?)를 치는 느낌이죠 ㅋㅋㅋ
그리고 그누보드 기본 DB에도 mb_id 값은 unique key로 설정되어있으니 속도는 면에서는 큰 문제는 없을 것같네요!
혹시 https://www.erdcloud.com/  이런 곳에 올려 둔 것은 없나요?
그리고 보통 g5_board에서 게시판 이름을 읽어와서 자동으로 맵핑하는 방법은 없나요?
blog라는 게시판을 만들면,  이것을 읽어서 g5_write_blog 라는 테이블 이름을 만들고
이것을 사용해서 Dynamic table mapping으로 그 게시판을 읽어 올수 있게도 가능할까요?

하다가 막힌 부분이
1. dynamic table name
2. id 가 없어서 relationship꾸미기 힘든것
3. wr_option set type
등이 였던 것 같습니다.
아하 다이어그램은 https://dbdiagram.io/d/5ef6cbda0425da461f03ee27 여기 있는데 이건 구조도 그려 보는 정도로 한거라 빼먹은게 몇게 있을겁니다ㅎㅎ;

일단 따로 모델 생성없이 g5_write_ 자동으로 릴레이션 해주는 기능은 v1.1.0으로 업데이트 하시면 with 메소드까지 모두 정상적으로 작동합니다. (ex. $admin->with('g5WriteFree'))

다만 다이나믹하게 class를 생성하는거다 보니 g5_board에 있는것들을 자동으로 파싱해서 모델을 만들어주는 명령어를 추가할 계획은 있습니다 ㅋㅋㅋ

막히신 부분의 1,2번은 아마 github에서 코드 보시면 조금은 도움이 되실것같습니다ㅎㅎ;
3번 같은 경우엔 저도 미처 생각못한 부분이라 테스트를 한번 해봐야겟네요 ;;
PHP로 잘모르면서 만든 코드가 https://www.apachezone.com/member_pds/18
여기에도 적었었는데, Restful API Spec을 잘 만들면, 그것을 기반으로 뒤는 여러가지 언어로 작성가능하게 만들면 좋을 것 같다고 생각했었습니다.
3번 Set type은 Eloquent에서 지원하는지는 모르겠고,  Node.js로 해 볼려고 하다가 지원이 안된다는 것을 알았습니다.
전체 195,262 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여87 회 시작24.04.12 12:32 종료24.04.19 12:32
  2. 참여53 회 시작24.04.12 12:32 종료24.04.19 12:32
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT