그누보드5 REST API 8/13일 정보
그누보드5 REST API 8/13일본문
지난 PHP 의 변경점들을 보면 객체지향언어로 가고있습니다.
final , 익명클래스, readonly 클래스가 생기고
프로퍼티에 타입이 가능해지고 등등..
그누보드 5 의 api 는 주소를 쉽게 지정하기 위해 슬림프레임워크를 사용하게되었고
컨트롤러/요청,응답 모델/서비스로 구성되어있습니다.
그러나 그누보드 5 api 도 그누보드의 일부이기때문에
기존 사용자들의 클래스에 대한 어려움 의견을 반영했습니다.
컨트롤러는 openapi 문서 생성 라이브러리의 한계로 인해
컨트롤러 클래스를 사용할 수밖에 없습니다.
서비스 클래스의 경우 테이블이름과 일부 상태정도만 있었기 때문에
이 부분에 대해서는 함수로 변경 중입니다.
아직 변경중입니다.
https://github.com/gnuboard/gnuboard5/commit/34b96cb2d0ee3b509d7a8e461da84cbae475aa3f
클래스의 private 멤버함수를 일반함수들로 바꾸면서 변경점.
* PHP 의 컴포저에서는 클래스 단위는 자동으로 인클루드 해주지만(PSR-4 오토로딩)
* 함수들은 그렇지 않아서 기존처럼 인클루드 하면됩니다.
* 기존 그누보드 5 처럼 전역 상태에 다 둘 수없기 때문에 네임스페이스가 도입되었습니다.
PHP 에는 클래스를 제외하면 자바스크립트같은 모듈 export 개념이 없기때문에
_ 접두사를 붙였습니다.
2
댓글 6개
이 변경으로 어떤 실익이 있는건지 모르겠습니다.
private 메소드들은 노출되어버렸고 서비스 레이어는 확장/대체할 방안이 있는지, 오토로드 규칙에 벗어나서 include해야하는 관리 포인트가 늘어나는 등 이 구성이 사용자가 직접 호출하여 사용하는 형태가 아닌 API를 동작시키는 구성의 일부일 뿐인데 확장 가능성도 차단되어버린 이러한 형태가 한 명의 사용자가 '난 클래스 어렵더라'라는 글 하나로 이러한 변경이 어떤 실익이 있는지 의문입니다.
'use function'은 과연 이해할 수 있을까요? 이것도 모르겠다, 불편하다고하면 전역 스코프로 분리되는 건가요?
@jihan006?
여기는 추천이 없네요. 공감합니다. 👍
@jihan006?
공감합니다
이제좀 제대로되려나 했는데
이건좀...
굳이 클래스 메서드들을 ...
이건아니쥐 ㅠㅠ