답변:
pear 에서 사용할 수있는 PHP UML 도구도 있습니다 .
PHP_UML :
다음을 통해 명령 줄에 설치합니다.
$ pear install pear/php_uml
(이전 $ pear install pear/php_uml-alpha
에는 그랬지만 패키지가 안정되었습니다.)
xmi 생성 :
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
( pear.php.net/package/PHP_UML/download/All 또는 pear.php.net/package/PHP_UML 참조 )
다음과 같은 BOUML 을 강력히 권장합니다 .
phUML은 BSD 라이선스에 따라 사용이 허가 된 PHP로 작성된 완전 자동 UML 클래스 다이어그램 생성기입니다. 모든 PHP5 객체 지향 소스 코드를 구문 분석하고 UML 사양을 기반으로 oo 구조의 적절한 이미지 표현을 생성 할 수 있습니다.
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
내가 찾은 최고의 (Windows) 소프트웨어는 PHP 및 UML을 수행하는 Sparx Systems Enterprise Architect 입니다. 다양한 기능 외에도 PHP에 대해 다음 을 지원합니다 .
공짜는 아니지만 ($ 199) 확실히 그만한 가치가 있습니다.
내가 한 방법은 다음과 같습니다 (수동 그리기없이 코드에서 PDF 그리기로 직접).
다음은 fdp를 사용하여 PDF 다이어그램을 출력하는 데 적합한 명령 줄의 예입니다 (arguml-graphviz XLST 처리에 의해 생성 된 도트 파일이 xmi-model.dot로 저장되었다고 가정).
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
대안으로 "역 공학"부분을 수행하기 위해 BOUML 대신 PHP_UML 또는 php2xmi 를 사용해 볼 수 있습니다. 나는 아직 그것을 시도하지 않았습니다.
(저는 UML 사람들이 소스 코드 에서 클래스 및 메서드 정보를 추출하는 것을 의미 할 때 이러한 단어를 사용하는 것처럼 보이기 때문에 "역 엔지니어링"이라는 문구를 사용하고 있습니다 . 개인적으로이 단어를 실행 가능한 바이너리 파일에서 정보를 추출하거나 원시적으로 캡처 한 것으로 해석 합니다 . 와이어 데이터.)
모든 그림을 그리기 위해 컴퓨터를 사용하는 대신 클래스 다이어그램을 손으로 그리는 것을 선호하는 경우 그림에 BOUML 또는 ArgoUML을 사용할 수 있습니다. BOUML을 통해 "리버스 엔지니어링"데이터를 사용하면이 경우에 도움이됩니다.
기존 PHP 클래스에서 UML을 쉽게 생성하려는 경우 PHPStorm 3.0 IDE를 고려할 수 있습니다. 기존 코드를 UML로 복제하는 것이 좋습니다.
PHP Storm 기능 목록을 살펴보십시오 .
이론적으로는 PhpStorm을 사용하여 UML을 사용하여 클래스를 시각화 할 수 있습니다. 세대가별로 좋지는 않지만 효과적으로 리팩토링 할 수 있으며 최소한 부모, 구현, 상수, 속성, 메서드 및 가시성을 좋은 방식으로 미리 볼 수 있습니다.
상태
기존 구성 요소 간의 의사 소통을 동료에게 시각화하고 싶습니다.
PHPStorm을 사용한 처리
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
장점
단점
결과
어쨌든 고통스러운 시간을 보낸 후에는 관련없는 상자 만 생성 할 수 있었고 관계를 연결하기 위해 추가 프로그램을 사용해야했습니다. 정말 나쁘다. 그러나 일단 제대로 작동하게되면 코드가 변경되면 다이어그램이 자동으로 업데이트되기 때문에 훌륭한 기능이 될 것이라고 생각합니다!
지금은 UML 다이어그램에 PhpStorm을 사용하지 마십시오.
솔직히 말해서 무엇보다도 코드에서 UML 모델을 생성하지 말고 UML 모델에서 코드를 생성해야합니다.).
드문 상황이더라도 리버스 엔지니어링을해야 할 때 자동 생성 된 UML은 시각적 (= 정보)이 정말 좋지 않기 때문에 일반적으로 직접 또는 최소한 다이어그램을 정리하는 것이 좋습니다. 대부분의 시간을 소중하게 생각합니다.
다이어그램을 생성하기 만하면 그 이유가 정확히 무엇인지 자문 해 보는 것이 좋습니다. 대상 청중은 누구이며 목표는 무엇입니까? 자동 생성 된 다이어그램이 제공해야하는 것은 무엇이며, 제공하지 않는 코드는 무엇입니까?
기본적으로 나는 그 질문에 대한 답을 하나만 받아들입니다. 너무 크고 이해하기 힘들어졌습니다.
이것은 코딩을 시작하는 것과는 반대로 UML로 시작해야하는 이유입니다.) 분석이라고 불리며 쇠퇴하고 있습니다. 왜냐하면 비즈니스의 모든 두 번째 사람은 그것이 너무 비싸고 실제로 필요하지 않다고 생각하기 때문입니다.