SIR

간략하게 정리한 디렉토리 구조 > RESTful

RESTful

간략하게 정리한 디렉토리 구조 정보

간략하게 정리한 디렉토리 구조

본문


├── plugin/api  (플러그인에 위치)
│   ├── BaseController.php (기본적인 컨트롤러 다른 컨트롤러들이 상속)
│   ├── BoardController.php (게시판용 컨트롤러)
│   ├── BoardDAO.php (게시판용 데이타 및 DB 접근 처리)
│   ├── BoardService.php (게시판 로직 처리용. 그누보드 board.php 컨버팅 코드 들어감)
│   ├── HelloController.php (샘플용 테스트 컨트롤러)
│   ├── ImageUploadService.php (이미지 업로드 처리용 클래스.. 썸네일 서비스등)
│   ├── MemberController.php (회원 관련 컨트롤러, 가입, 로그인, 로그아웃 처리등)
│   ├── MemberDAO.php (회원 관련 데이타 처리.)
│   ├── MemberService.php (회원 관련 로직 처리 클래스)
│   ├── Router.php (라우터 처리 클래스... bramus/router 커스텀)
│   ├── SimpleDB.php (PDO DB를 좀더 쉽게 쓸수 있게 처리한 wrapper 클래스)
│   ├── _common.php (그누보드 호환용.. 없어도 됨)
│   ├── autoload.php (클래스 파일 로딩용 오토로더)
│   └── index.php (라우터 및 api 핵심로직  파일)

만들고 있는 파일 디렉토리 입니다.

파일구조만 잡아둔 상태고, 아직 본격적인 개발전 입니다.

 

디렉토리 구조도 많이 고민을 했는데, 

1. composer 를 쓰지 않는 대신 autotoload 를 사용

2. 네임스페이스는 사용하지 않음. 사용하는것이 디렉토리를 좀더 체계적으로 관리할수 있지만, 복잡성을 줄이는게 목표임으로 배제하였습니다.

    - 네임스페이스를 사용한다면, src/Controllers, src/Service 형태의 폴더가 추가되었을겁니다.

3. ORM은 사용하지 않습니다. JWT도 사용하지 않습니다. composer의 도움을 받거나, 파일수가 많은건 모두 배제하였습니다. 최대한 구조를 간결하게 하여, 코드를 이해하기 쉽게 만드는게 방향입니다.(코드 리딩이 쉽게..)

 

4. 데이타 처리를 하는 클래스명을 Model을 쓸지, DAO을 쓸지 고민했는데, Model은 프로퍼티가 존재하는게 맞는것 같고, 데이타 처리 클래스에 프로퍼티 없이, getMember(), createMember() 형태의 메소드만 존재함으로 DAO가 좀더 의미가 맞아보였습니다. 

 

 

 

 

 

 

추천1

댓글 3개

저도 php에서 많이 사용되는 api 구조를 따라해볼까 했는데
그누보드가 어느정도 스파게티 소스화 된 부분이 많고
MVC패턴과는 동떨어져있으며,
기존 개발자들이 이러한 부분에 익숙해진게 있어서
그냥 클래스명이나 용도를 최대한 그누보드 파일명이나 파일과 일치시키는 식으로 진행했습니다.
저도 욕심부리면 또하나의 그누보드를 만들것 같아 자제중입니다. 전체 리빌딩은 sir에서 해야할 롤이라고 생각합니다. 그전에 임시로 쓸 api서비스를 만드는거니 적당한 수준에서 진행하고 있습니다.
전체 43 |RSS
RESTful 내용 검색

회원로그인

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

© SIRSOFT