본문 바로가기
PHP/Composer

[PHP] 라라벨 루멘 DB문서 자동화

by 2세1의 행복한 개발 2020. 3. 19.
반응형

안녕하세요

제가 오늘 하려는건 DB문서를 자동으로 문서화 해주는 것 입니다

회사에서 저한테 하나하나 엑셀로 정리하라고 하시는거에요

그래서 처음에는 그냥 엑셀로 정리를 했었어요!

 

문제점

1. DB Table 갱신 후 엑셀 문서 갱신 누락 (귀찮음)

2. 매번 엑셀 문서경로를 찾아서 들어가야함 (귀찮음)

3. 새로운 DB마다 똑같은걸 반복함 (많이 귀찮음)

= 많이 귀찮은 노가다의 반복

 

해결 방법

Composer를 이용하여 빠르고 쉽게 문서를 자동화함

https://packagist.org/packages/unisharp/doc-us

 

unisharp/doc-us - Packagist

README Doc Us A MySQL Schema Documentation Generator for Laravel. Installation Require this package with composer: composer require unisharp/doc-us Add ENABLE_DOC_US in .env (Default is disable) ENABLE_DOC_US=true Add the ServiceProvider to the providers a

packagist.org

적용하는 방법

라라벨 같은 경우는 위에 방법으로 바로 적용이 가능하지만

제가 사용하는 프레임워크는 라라벨 루멘이였습니다..

그래서 루멘에서 해당 doc-us를 적용하는 방법을 알아보겠습니다

 

위에 packagist에 들어가보시면 이렇게 순서가 나와요

composer를 통해서 unisharp/doc-us 다운 받았습니다

잘 받아집니다 여기까지는 문제가 없네요

이렇게 .env 파일에 EANBLE_DOC_US도 추가해줍니다

다른사람은 못 알아볼수 있기 때문에 주석도 추가했어요

그런데...

여기서 문제가 생깁니다 ..

라라벨은 기본적으로 config/app.php가 존재합니다

그러나 루멘은 config폴더부터 생성해서 작성하기 시작해야해요

이때 문득 루멘 괜히 썻다라고 삼십분정도 생각했는데

 

어차피 루멘은 라라벨에서 기능을 뺀 프레임워크이기 때문에

구조를 조금보면 가능할껍니다

UniSharp\DocUs\DocUsServiceProvider::class를 뜯어보니 이런 구조로 되어있네요

routes를 추가하고 view를 이용해 table,json 등등 다양한 형태로 보여줍니다

 

providers에 추가 한다는건 페이지가 열릴때 해당 class를 호출한다는건데

lumen에서는 bootstrap/app.php에서 같은 역할 및 기능 on/off를 하기 때문에

$app->register(UniSharp\DocUs\DocUsServiceProvider::class);

를 추가하여 해당 class를 실행해줍니다

 

결과는

 

넵 안됩니다

 

https://github.com/laravel/lumen-framework/issues/187

찾아보니 response의 사용방법이 조금 달랐습니다

vendor\unisharp\doc-us\src\routes.php

의 return부분을 수정해주시면

 

http://도메인/schema

이렇게 해당 테이블, description, index 정보가 나옵니다

서비스가 커지면서 DB와 Table이 많아지면서 자동화가 필요하게 됩니다

 

이상입니다.

'PHP > Composer' 카테고리의 다른 글

텔레그램 웹훅을 이용하여 특정 커맨드 만들기  (0) 2020.04.23
PHP 로그를 쉽게 남겨보자!  (0) 2020.04.22

댓글