그누보드5 REST API - 8/19 > 그누보드5 개발일지

그누보드5 개발일지

그누보드5 REST API - 8/19 정보

그누보드5 REST API - 8/19

본문

오류 수정

 

* SchemaHelperTrait 트레이트는 클래스와 사용자에게 입력받은 배열을 
타입에 맞춰 매핑합니다. 타입에 안맞을때는 null 이 들어가게 되어있는데요 
null 이 가능하지 않은 타입에서는 오류가 발생하여 
각 타입의 기본값이 지정되게 수정했습니다.

 

 

990520834_1724061784.3967.png

 

사용되는 곳은 이렇습니다.

게시판 정보 조회 API 를 예를들면

 

그누보드 관리자에는 게시판에 업로드 할 파일갯수를 지정할 수있습니다.

업로드 가능한 파일개수 정보가 필요할 때 클래스 맴버변수로 bo_upload_count 를 작성하고 생성자에서 

$this->mapDataToProperties 를 호출하면 컨트롤러에서 받아온 $data 배열중에

맴버변수로 있는거만 뽑아서 저장됩니다.

 

990520834_1724062416.062.png

 

BoardController.php

 

컨트롤러에서는 해당 클래스를 new 로 생성하여 데이터를 배열로 전달하면됩니다.

154 번째줄에  배열의 "board"  키에 new Board($board)  에 쓰였습니다.

 

 

 

* 지난번 클래스를 네임스페이스와 함수로 변경했었는데요

다시 클래스로 돌아갔습니다.

 

이유는요

PHP 에서 함수오토로딩을 지원안해주니까

수동 include + 네임스페이스로 이중 일이 될뿐더러

컨트롤러가 이미 객체기반인데 서비스 클래스만 함수로 변경해서는 쉬워지지도 않기도 하고요

use function 이나 클래스기반의 메서드나 둘다 Vscode 의 도움이 필요합니다.

 

여기 게시판 외에도 많은 분들의 의견이 있었습니다. 의견 감사합니다.

 

--------------------------------

이 일과는 별개로  

https://wiki.php.net/rfc/function_autoloading4

 

PHP에 함수오토로딩 언젠가는 생기겠죠? RFC 가 있네요.

추천
1

댓글 1개

오토로드가 주된 문제가 아니라 확장성을 버린 게 주요 문제였죠.

 

'난 클래스 어렵더라~'라는 글 하나로 확장성을 버리고 이득이 없는 설계 변경은 이상한 결정이었던 것 같습니다.

전체 27 |RSS
그누보드5 개발일지 내용 검색

회원로그인

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