Menu

Tuesday, August 24, 2021

[GIT] วิธีการ Clone หรือ Push Repository โดยใช้ Personal Access Token
[GIT] How to Clone or Push to a Repository using Personal Access Token

โดยปกติแล้ว เราจะใช้วิธี authenticate ดังต่อไปนี้ เพื่อใช้งาน Git Repository 
นอกเหนือจากวิธีข้างต้นแล้ว เรายังมีวิธี authenticate ด้วย Personal Access Token ในการเข้าใช้ Git Repository ด้วย 

สำหรับวิธีการสร้าง Personal Access Token สามารถอ่านได้ที่ Personal access tokens

Monday, August 16, 2021

[PHP - Laravel] วิธีการสร้าง Class Diagram ที่มี Caller Graph จาก Source Code ที่เป็น Laravel
[PHP - Laravel] How to Generate Class Diagram with Caller Graph from Laravel Source Code

เราจะใช้ Doxygen ร่วมกับ Graphviz ในการสร้าง Class diagram ที่มี Caller Graph 

Doxygen เป็นเครื่องมือที่ใช้สร้างเอกสารจาก source code ที่มีอยู่ ภาษาโปรแกรมที่ support เช่น PHP, Java, Python เป็นต้น

Graphviz เป็น open source software ที่ใช้สร้างและแสดงผลกราฟรูปแบบต่างๆ

Doxygen จะเรียกใช้ dot ของ Graphviz สำหรับสร้างเอกสารในส่วนของ caller graph

การติดตั้ง Doxygen และ Graphviz

  1. ดาวน์โหลด Doxygen จาก https://www.doxygen.nl/download.html และติดตั้งตามปกติ
  2. ดาวน์โหลด Graphviz จาก https://graphviz.org/download/ และติดตั้งตามปกติ
  3. เพิ่ม C:\Program Files\Graphviz\bin เข้าไปที่ System path

Thursday, July 8, 2021

[Docker - MySQL] วิธีการนำเข้าข้อมูลจากไฟล์ไปยังฐานข้อมูล MySQL ใน Docker Container
[Docker - MySQL] How to Import SQL File to MySQL Database in Docker Container

เราจะใช้คำสั่งดังนี้

sudo docker exec -it [container_id_or_name] mysql -u[mysql_username] -p[mysql_password] --default-character-set=utf8 [database_name] < [sql_file]
โดยที่
  • container_id_or_name เป็น ID หรือชื่อของ container
  • mysql_username เป็นชื่อผู้ใช้งานของ MySQL
  • mysql_password เป็นรหัสของผู้ใช้งานนั้น
  • database_name เป็นชื่อฐานข้อมูลที่ต้องการนำเข้าข้อมูล
  • sql_file เป็นชื่อไฟล์ SQL script สำหรับนำเข้าข้อมูล
อ่านเพิ่มเติมได้ที่ https://blog.code2now.com/2020/04/database-mysql-backup-restore-mysql.html

Monday, July 5, 2021

[GIT] การตั้งค่า Deploy Key ใน Gitlab (อัพเดต 20210705)
[GIT] How to Set Up Deploy Key in Gitlab (Updated 20210705)

การตั้งค่า deploy key เป็นการตั้งค่า SSH key เฉพาะโปรเจคและใช้เป็น key สำหรับการ deploy เท่านั้น โดยปกติแล้ว key นี้จะอนุญาตให้ clone หรือ pull code จาก repository เท่านั้น ไม่อนุญาตให้ทำการ push code ที่แก้ไขขึ้นมายัง repository

สมมติว่า เราสร้าง SSH key ในเครื่อง server ของเราเรียบร้อยแล้ว (ข้อมูลเพิ่มเติม: การสร้าง SSH Key ใหม่)
  1. Login เข้า Gitlab
  2. เข้าไปที่โปรเจคของเรา
  3. เลือกเมนู Settings
  4. เลือกเมนู Repository
  5. เลื่อนลงไปยังส่วนของ Deploy Keys แล้วกดปุ่ม Expand
  6. กรอกข้อมูล Title เพื่อระบุว่า key นี้เป็นของเครื่องใด
  7. คัดลอกข้อมูลภายใน Public key ของ SSH แล้ววางลงในช่อง Key
  8. ไม่ต้องเลือกช่อง Write access allowed
  9. กดปุ่ม Add key
เพียงเท่านี้ เราก็สามารถใช้ Clone with SSH และ pull code จาก Gitlab ด้วย SSH key ของ server เราได้แล้ว โดยไม่จำเป็นต้องใส่ username และ password

Monday, June 28, 2021

[Java - Spring Boot] Exception Handler ใน Spring Boot
[Java - Spring Boot] Exception Handler in Spring Boot

สำหรับ Exception Handler เราจะสร้าง class ที่ใช้ @ControllerAdvice ดังนี้
package com.example.exception;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

import java.util.LinkedHashMap;

@ControllerAdvice
public class CustomExceptionHandler   {

    @ExceptionHandler(value = {ExceptionWrapper.class})(value = {exception_class.class})
    public ResponseEntity<Object> exceptionHandler(exception_class ex) {
    	// Handle specific exception then return ResponseEntity
        return new ResponseEntity(ex,HttpStatus.BAD_REQUEST);
    }
}
      
โดยที่ exception_class เป็นชื่อของ Exception Class ที่ต้อง handle 

คำอธิบายเพิ่มเติม
  • @ControllerAdvice - อนุญาตให้เรา apply เทคนิคใน class ข้างใต้มันกับทุกๆ controller ของเรา (อ่านเพิ่มเติมที่ ControllerAdvice)
  • @ExceptionHandler - ใช้เพื่อระบุว่า method ข้างใต้มันเป็น Exception handling methods (อ่านเพิ่มเติมที่ ExceptionHandler)