그누보드5 REST API - 8/19 정보
그누보드5 REST API - 8/19본문
오류 수정
* SchemaHelperTrait 트레이트는 클래스와 사용자에게 입력받은 배열을
타입에 맞춰 매핑합니다. 타입에 안맞을때는 null 이 들어가게 되어있는데요
null 이 가능하지 않은 타입에서는 오류가 발생하여
각 타입의 기본값이 지정되게 수정했습니다.
사용되는 곳은 이렇습니다.
게시판 정보 조회 API 를 예를들면
그누보드 관리자에는 게시판에 업로드 할 파일갯수를 지정할 수있습니다.
업로드 가능한 파일개수 정보가 필요할 때 클래스 맴버변수로 bo_upload_count 를 작성하고 생성자에서
$this->mapDataToProperties 를 호출하면 컨트롤러에서 받아온 $data 배열중에
맴버변수로 있는거만 뽑아서 저장됩니다.
BoardController.php
컨트롤러에서는 해당 클래스를 new 로 생성하여 데이터를 배열로 전달하면됩니다.
154 번째줄에 배열의 "board" 키에 new Board($board) 에 쓰였습니다.
* 지난번 클래스를 네임스페이스와 함수로 변경했었는데요
다시 클래스로 돌아갔습니다.
이유는요
PHP 에서 함수오토로딩을 지원안해주니까
수동 include + 네임스페이스로 이중 일이 될뿐더러
컨트롤러가 이미 객체기반인데 서비스 클래스만 함수로 변경해서는 쉬워지지도 않기도 하고요
use function 이나 클래스기반의 메서드나 둘다 Vscode 의 도움이 필요합니다.
여기 게시판 외에도 많은 분들의 의견이 있었습니다. 의견 감사합니다.
--------------------------------
이 일과는 별개로
https://wiki.php.net/rfc/function_autoloading4
PHP에 함수오토로딩 언젠가는 생기겠죠? RFC 가 있네요.
1
댓글 1개
오토로드가 주된 문제가 아니라 확장성을 버린 게 주요 문제였죠.
'난 클래스 어렵더라~'라는 글 하나로 확장성을 버리고 이득이 없는 설계 변경은 이상한 결정이었던 것 같습니다.