เราจะใช้ Doxygen ร่วมกับ Graphviz ในการสร้าง Class diagram ที่มี Caller Graph
Doxygen เป็นเครื่องมือที่ใช้สร้างเอกสารจาก source code ที่มีอยู่ ภาษาโปรแกรมที่ support เช่น PHP, Java, Python เป็นต้น
Graphviz เป็น open source software ที่ใช้สร้างและแสดงผลกราฟรูปแบบต่างๆ
Doxygen จะเรียกใช้ dot ของ Graphviz สำหรับสร้างเอกสารในส่วนของ caller graph
การติดตั้ง Doxygen และ Graphviz
- ดาวน์โหลด Doxygen จาก https://www.doxygen.nl/download.html และติดตั้งตามปกติ
- ดาวน์โหลด Graphviz จาก https://graphviz.org/download/ และติดตั้งตามปกติ
- เพิ่ม C:\Program Files\Graphviz\bin เข้าไปที่ System path
การปรับแก้โค้ด เพื่อเตรียมสร้าง Class diagram
หลังจากติดตั้งเรียบบร้อยแล้ว เราต้องทำการปรับโค้ดดังนี้
- เพิ่ม function ข้างล่างนี้ใน Laravel Model ของเรา
public function __construct() { } public function save() { } public static function all() { } public static function with() { } public static function whereIn() { } public static function whereNotIn() { } public static function updateOrCreate() { } public static function groupBy() { } public static function chunk() { } public static function join() { } public static function find() { } public static function where() { } public static function insert() { } public static function update() { } public static function delete() { } public static function count() { } public static function truncate() { }
- แก้การเรียก function ของ instance เป็นแบบ static เช่น
$user->save();
ต้องเปลี่ยนเป็นUser::save();
การรัน Doxygen เพื่อสร้าง Class diagram
- เปิดโปรแกรม Doxywizard
- ระบุ Working directory (สมมติว่ากำหนดค่าเป็น {working_directory}), Project name และ Source code directory
- ตั้งค่า Mode เลือก All Entities, Include cross-referenced source code in the output และเลือก Optimize for C or PHP output
- ตั้งค่า Output เลือก HTML, with navigation panel และ With search function
- ตั้งค่า Diagram เลือก Use dot tool from the GraphViz package และเลือกทุกตัวเลือก
- ไปที่แท็บ Run แล้วกดปุ่ม Run doxygen
- รอจนโปรแกรมรันสำเร็จ แล้วไปที่ path {working_directory}/output/html
- เปิดไฟล์ index.html ด้วย browser แล้วเข้าไปที่เมนู Data Structures
No comments:
Post a Comment