그누보드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개
오토로드가 주된 문제가 아니라 확장성을 버린 게 주요 문제였죠.
'난 클래스 어렵더라~'라는 글 하나로 확장성을 버리고 이득이 없는 설계 변경은 이상한 결정이었던 것 같습니다.
게시판 목록
그누보드5 개발일지
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 1년 전 | 1726 | ||
| 26 | 1년 전 | 2933 | ||
| 25 |
|
1년 전 | 1968 | |
| 24 | 1년 전 | 1776 | ||
| 23 |
|
1년 전 | 1568 | |
| 22 | 1년 전 | 1626 | ||
| 21 | 1년 전 | 1926 | ||
| 20 |
|
1년 전 | 1610 | |
| 19 |
|
1년 전 | 1844 | |
| 18 | 1년 전 | 1538 | ||
| 17 |
|
1년 전 | 1486 | |
| 16 | 1년 전 | 1613 | ||
| 15 | 1년 전 | 924 | ||
| 14 | 1년 전 | 1028 | ||
| 13 | 1년 전 | 591 | ||
| 12 | 1년 전 | 421 | ||
| 11 | 1년 전 | 808 | ||
| 10 | 1년 전 | 536 | ||
| 9 |
|
1년 전 | 414 | |
| 8 | 1년 전 | 665 | ||
| 7 | 1년 전 | 744 | ||
| 6 |
|
1년 전 | 446 | |
| 5 | 1년 전 | 625 | ||
| 4 |
|
1년 전 | 445 | |
| 3 |
|
1년 전 | 520 | |
| 2 | 1년 전 | 1022 | ||
| 1 | 1년 전 | 1024 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기