บทความ

Topic 6: Writing PHP Tests for PHPUnit

- Part 1: กฎการเขียน code ใน PHPUnit test   1. เรียกใช้  PHPUnit   ด้วย use PHPUnit\Framework\TestCase;   2. ประกาศชื่อ class ที่ใช้ทดสอบจะต้องตามด้วย Test และ extends TestCase เช่น class dataTest extends TestCase   3. ประกาศ function เพื่อทดสอบ จะต้องมี test ด้านหน้า เช่น public function testgetuser() {   }   4. include ไฟล์ที่ต้องการทดสอบภายใน function เช่น include(dirname(__DIR__)."/project/datax.php");   5 . เขียน function ทดสอบ ในตัวอย่างจะใช้ assertEquals ซึ่งเป็น function ในการทดสอบค่าของ  PHPUnit  โดยค่าที่กำหนดใน $expect และ $test จะต้องตรงกัน เช่น     หมายเหตุ : ถ้าหากต้องการตรวจสอบผลลัพธ์ ให้ใช้คำสั่ง var_dump() อ้างอิง : https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers

Topic 5: PHP Project Structure

รูปภาพ
- Part 1 : Continuous Integration Continuous Integration มีความสามารถในการทดสอบประสิทธิภาพ หรือปรับปรุงคุณภาพของการพัฒนา Software ให้ดีขึ้น เช่น สามารถทดสอบ test case เมื่อ source code มีเปลี่ยนแปลง และสามารถทดสอบได้แบบอัตโนมัติ เมื่อเกิดปัญหาระบบจะหยุดทำงาน และแสดงรายละเอียดของปัญหา - Part 2 : Jenkins Jenkins คือ CI (Continuous Integration) ไม่ใช่ library หรือเครื่องมือที่ใช้ทดสอบประสิทธิภาพของ code แต่จะเขียน bash script หรือ build.xml สั่งงานให้แสดงผลลัพธ์ของการทดสอบ code โดยใช้ปลั๊กอินของ PHPUnit คือ junit  ในการทำ Project PHP จะต้องเขียน code เพื่อทดสอบชุดคำสั่งหรือ function การทำงาน โดยใช้ PHPUnit ทำ unit test และ gen xml file ออกมาเพื่อให้ junit ทำ report แสดงผลลัพธ์ของการทดสอบ เพราะถ้าหากไม่เขียนเป็น PHPUnit จะไม่สามารถทดสอบ code ได้ ในการเขียน code จะไม่มีการโยน code เข้าไปตรง ๆ แต่ต้องเขียน unit test เป็น test case ต่าง ๆ ครอบอีกชั้นนึง ซึ่งต้องเขียนก่อน นำขึ้นไป run บน Jenkins     - Part 3 :  Automate build  ใน  Jenkins 1....

Topic 4: Setup Ubuntu Server

รูปภาพ
1. ดาวน์โหลด OS เป็น Ubuntu Server ได้จาก https://www.ubuntu.com/download/server   2. ดาวน์โหลดโปรแกรมจำลอง Serve คือ      - สำหรับ windows จะเป็น VMware Workstation Pro https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html        - สำหรับ Mac จะเป็น VMware Fusion or Fusion Pro https://www.vmware.com/products/fusion/fusion-evaluation.html 3. ดาวน์โหลดโปรแกรม PuTTY ที่ช่วยสั่งงาน Server ผ่าน command line ได้จาก https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html   หมายเหตุ : สำหรับ Mac จะเป็น Terminal 4. จากนั้นจะได้เป็นทั้ง 3 ไฟล์ ดังรูป   5. ติดตั้งโปรแกรม VMware 6. ติดตั้ง Ubuntu Server ลงบน VMware สามารถอ่านรายละเอียดของการติดตั้งได้จาก https://nb05.blogspot.com/2013/02/ubuntu-server-1204-vmware-workstation.html หมายเหตุ : Ubuntu ที่ใช้เป็น Server ต้องมี Ram ขั้นต่ำ 1GB

Topic 3: Gitlab with troubleshooting

รูปภาพ
1.   กรณีที่ต่างคนต่างทำงานแต่เป็นไฟล์เดียวกัน ซึ่งเขียนคนละ function กัน เมื่อมีคนหนึ่ง commit ไฟล์และ push  แต่เมื่อคนอื่น ๆ จะ Push ไม่สามารถ push ได้ ถ้าหากเกิด Conflict คนอื่น ๆ จะไม่สามารถ push ได้ เพราะ source code เกิดการชนกันหรือทับซ้อน วิธีแก้คือ 1.   จะต้องใช้คำสั่ง Pull เพื่อ Remote ลงมาใหม่ 2.   แก้ไข source code ให้สามารถใช้งานหรือรวมกันได้ ภายใต้เครื่องหมายกำกับแยกไว้ เช่น -   โค้ดที่อยู่ระหว่าง <<< และ === คือโค้ดของคนแรก -   โค้ดที่อยู่ระหว่าง === และ >>> คือโค้ดของคนอื่น ๆ -   ตัวเลขต่อท้ายคือหมายเลขของ Commit ที่ทำการ Merge 3.          จากนั้นให้ Commit จากนั้นจะสามารถ Push ขึ้นใหม่ได้  เมื่อเสร็จแล้วให้ Commit คนแรกจะสามารถ Push ขึ้น Remote ได้ ส่วนคนอื่น ๆ จะต้อง Pull Commit ตัวนี้ทีหลัง ข้อควรระวัง : ถ้าเผลอไปแก้ไขอะไรที่เดิมซ้ำอาจทำให้เกิด Conflict อีกครั้ง 2.           2.  การแสดงรายละ...

Topic 2: Gitlab usage

ผู้เริ่มต้นใช้งาน  git  จะต้องตั้งค่าเครื่องคอมพิวเตอร์ให้ติดต่อกับ  git  โดยใช้คำสั่ง git config --global user.name "name" git config --global user.email "mail@gmail.com" กรณีที่สร้าง  Project  ใหม่บน  Gitlab  แบบไม่มีไฟล์ใด ๆ  ใช้คำสั่ง git clone url cd folder git branch git checkout branch_name git status git add . git commit -m "add " git push origin master กรณีที่  Project  บน  Gitlab  มีไฟล์ต่าง ๆ  ใช้คำสั่ง สร้าง  folder  ใหม่ git init git remote add origin url git pull origin branch_name git branch git checkout branch_name git status git add . git commit -m "add " git push origin master

Topic 1: Gitlab basic command

git config เป็นคำสั่งที่ใช้กำหนดข้อมูลของผู้ใช้ เพื่อระบุตัวตนและคุณสมบัติอื่น ๆ ของ Git มีคำสั่งดังนี้ git config --global user.name "your name" git config --global user.email "your email" git config –list                                                      // แสดงการ config ทั้งหมด git init เป็นคำสั่งที่ใช้สร้าง Git ขึ้นมาภายใต้โฟลเดอร์หรือ Path โดยสร้างโฟลเดอร์ . git ขึ้นมาเพื่อใช้เก็บ สำรองข้อมูล    การเปลี่ยนแปลง และคุณสมบัติอื่น ๆ ของ Git มีคำสั่งดังนี้ git init git clone เป็นคำสั่งที่ใช้ดึงประวัติทั้งหมดบน Repository ของเพื่อนร่วมทีม หรือของตัวเองบน Git มาที่เครื่องที่ใช้งาน         มีคำสั่งดังนี้ git clone <URL> git remote เป็นคำสั่งที่ใ...