# รวมบทเรียน Yii Framework ทั้งหมด
# บทที่ 1 ทำความรู้จัก Yii PHP Framework กันดีกว่า
# บทที่ 2 เตรียมความพร้อมก่อนการติดตั้ง Yii Framework
# บทที่ฟ 3 ดาวโหลดและติดตั้ง Yii Framework
# บทที่ 4 ทดสอบหลังการติดตั้ง พร้อมกับการตรวจสอบเบื้องต้น
# บทที่ 5 การตั้งค่า Config สำหรับการใช้งานเบื้องต้น
# บทที่ 6 การใช้งาน Gii ของ Yii Framework
# บทที่ 7 การเชื่อมต่อฐานข้อมูลของ Yii Framework
# บทที่ 8 การดึงข้อมูลจากฐานข้อมูล พร้อมวิธีการใช้งาน
# บทที่ 9 เรียนรู้การ Join ตารางฐานข้อมูล
# บทที่ 10 การเรียกใช้งาน Session
# บทที่ 11 สร้างหน้าสมัครสมาชิก
# บทที่ 12 ทำระบบ Login โดยดึงข้อมูลจากฐานข้อมูล
# บทที่ 13 การสร้างฟอร์มสำหรับรับข้อมูล
# บทที่ 14 การสร้างฟอร์มสำหรับอัพโหลดไฟล์และการแสดงผลสำหรับดาวโหลด
# บทที่ 15 การสร้างฟอร์มสำหรับอัพโหลดรูปภาพและการแสดงผลรูปภาพ
# บทที่ 16 รวบรวมการใช้งาน Widget ที่มีอยู่ในตัว Yii Framework
# บทที่ 17 รวบรวมการใช้งาน Widget ที่สำคัญ ๆ และเป็นที่น่าสนใจ
# บทที่ 18 ทดลองสร้าง Widgit ไว้ใช้งานเองกันดีกว่า
# บทที่ 19 แนะนำ Extension ที่น่าสนใจและเป็นที่นิยมใช้ในหมู่นักพัฒนาเว็บแอพพลิเคชั่น
# บทที่ 20 เรามาสร้างเว็บแอพพลิเคชั่น รองรับหลายภาษา
# บทที่ 21 รวบรวมการใช้งานและรายละเอียดต่าง ๆ ของ Rules ใน Mode
# บทที่ 22 ทำความเข้าใจกับ Relation ต่าง ๆ ใน Active Record
# บทที่ 23 วิธีการสร้าง Class ใช้เอง แบบเรียกผ่าน Yii::app() ได้
# บทที่ 24 การใช้งาน Log เพื่อตรวจสอบความถูกต้อง
# บทที่ 25 การใส่รูป Favicon ให้กับเว็บแอพพลิเคชั่น
# บทที่ 26 กำหนดสิทธิการเข้าถึงการใช้งานหน้าเว็บ
# บทที่ 27 การ Redirect ไปยังเว็บไซต์ภายนอกหรือไปยังไฟล์ HTML ของเรา ใน Yii
# บทที่ 28 รวมการติดตั้งและการใช้งาน Yii-User และ Rights Extension
# บทที่ 29 เรามาลองสร้าง Modules ไว้ใช้เองกันดีกว่าครับ
# บทที่ 30 Social Plugins in Facebook SDK for Yii Extension
# บทที่ 31 การเก็บ Log ลง SQL Database บน Yii Framework
# บทที่ 32 ทำความรู้จักกับ Yii booster ใช้ตกแต่ง UI เว็บแอพพลิเคชั่น
--------------------------------------------------------------------------------
# บทเรียนอื่น ๆ
# บทเรียน Laravel Framework (PHP Framework)
# บทเรียน Phalcon Framework (PHP Framework)
# บทเรียน Spring Framework (Java Framework)
--------------------------------------------------------------------------------
เอกบิณ ใจแก้วมา (Software Developer)
CEO :: http://drivesoftcenter.net (Drive Software and Developer Center)
Email :: eakkabin_it@hotmail.com
----------------------------------------------------------------------------------------------
credit : http://www.yii.in.th/forum/index.php?topic=903.0
----------------------------------------------------------------------------------------------
08 May 2014
06 May 2014
Testing การทดสอบ โปรแกรม Yii
การทดสอบเป็นกระบวนการที่ขาดไม่ได้ของการพัฒนาซอฟต์แวร์ เราควรให้ความสำคัญกับมันให้มาก และควรจะทดสอบทุกๆ ขั้นตอนในกระหว่างการพัฒนา ตัวอย่างเช่นเมื่อเราเขียนคลาส ใน php เพื่อใช้งาน เราอาจใช้ คำสั่ง echo, print, print_r หรือ functiondie(),exit() เพื่อ หยุดการทำงานของ methods และแสดงข้อมูลที่เราอยากรู้ว่าทำงานได้ถูกต้องตรงตามต้องการหรือไม่ และ เมื่อเราจะทดสอบหน้าเว็บที่มี ฟอร์มกรอกข้อมูล เราต้องกรอกข้อมูลลงไปในฟอร์มเพื่อทดสอบว่าเพจนั้นๅ ทำงานถูกต้องหรือไม่ นอกจากวิธีข้างต้นแล้วยังมีวิธีทดสอบการทำงานของโปรแกรม ที่สะดวกและรวดเร็วกว่า คือ ทำให้คอมพิวเตอร์ทำการทดสอบแทนเรา ซึ่งเรียกว่า "automated testing"
สำหรับ Yii Framework สนับสนุนการทำแบบนั้นอยู่ แล้วโดยจะมี unit testing และ functional testing.
Unit test คือ เป็นการทดสอบ ส่วนที่เล็กที่สุดของโค้ดว่าทำงานได้ถูกต้องหรือไม่ ในการเขียนโปรแกรมแบบ OOP ส่วนที่เล็กที่สุดของโค้ดก็คือ Class ดังนั้นการทดสอบการทำงานของ Class ก็จะมุ่งเน้นไปที่ methods การทำงานสัมพันธ์กันของ methods ใน Class โดยการป้อนพารามิเตอร์ที่แตกต่างกันเพื่อทดสอบดูผลที่ได้จาก methods ว่าถูกต้องหรือไม่ โดยที่ Unit tests ต้องถูกเขียนโดยผู้พัฒนาที่เป็นคนเริ่มเขียน Classes เชื่อเช็คความถูกต้องของ Classes นั่นเอง
Functional test เป็นการตรวจสอบความถูกต้องของ feature ต่างๆ ว่าทำงานถูกต้องหรือไม่ เช่น การจัดการ post ในระบบ blog ถ้าจะเทียบ Functional test กับ Unit test แล้ว Functional test จะเป็นการทดสอบการทำงานของหลายๆ Classes ซึ่งรวมกันขึ้นเป็นเป็นระบบ Functional tests สามารถทำได้โดยคนที่รู้ความต้องการโดยรวมของระบบทั้งหมด
--------------------------------------------------------------------
credit : http://www.mindphp.com
--------------------------------------------------------------------
สำหรับ Yii Framework สนับสนุนการทำแบบนั้นอยู่ แล้วโดยจะมี unit testing และ functional testing.
Unit test คือ เป็นการทดสอบ ส่วนที่เล็กที่สุดของโค้ดว่าทำงานได้ถูกต้องหรือไม่ ในการเขียนโปรแกรมแบบ OOP ส่วนที่เล็กที่สุดของโค้ดก็คือ Class ดังนั้นการทดสอบการทำงานของ Class ก็จะมุ่งเน้นไปที่ methods การทำงานสัมพันธ์กันของ methods ใน Class โดยการป้อนพารามิเตอร์ที่แตกต่างกันเพื่อทดสอบดูผลที่ได้จาก methods ว่าถูกต้องหรือไม่ โดยที่ Unit tests ต้องถูกเขียนโดยผู้พัฒนาที่เป็นคนเริ่มเขียน Classes เชื่อเช็คความถูกต้องของ Classes นั่นเอง
Functional test เป็นการตรวจสอบความถูกต้องของ feature ต่างๆ ว่าทำงานถูกต้องหรือไม่ เช่น การจัดการ post ในระบบ blog ถ้าจะเทียบ Functional test กับ Unit test แล้ว Functional test จะเป็นการทดสอบการทำงานของหลายๆ Classes ซึ่งรวมกันขึ้นเป็นเป็นระบบ Functional tests สามารถทำได้โดยคนที่รู้ความต้องการโดยรวมของระบบทั้งหมด
--------------------------------------------------------------------
credit : http://www.mindphp.com
--------------------------------------------------------------------
ออกรายงาน pdf ด้วย Yii
ETcPdf เป็น extension ของ Yii Framework ซึ่งใช้ class หลักของ TCPDF ซึ่ง เจ้า TCPDF นี้ทางเว็บไซต์เราได้นำมาใช้ ทำ Pdf Creator online
วิธี
1. ดาวน์โหลด TCPDF จาก http://www.tcpdf.org/
2. ดาวน์โหลด TCPDF extension จาก http://www.yiiframework.com/extension/tcpdf/
unzip ไฟล์ ทั้งข้อ 1 และข้อ 2 ไว้ใน
ตัวอย่างการใช้งาน
วิธี
1. ดาวน์โหลด TCPDF จาก http://www.tcpdf.org/
2. ดาวน์โหลด TCPDF extension จาก http://www.yiiframework.com/extension/tcpdf/
unzip ไฟล์ ทั้งข้อ 1 และข้อ 2 ไว้ใน
protected/extensions/tcpdf/
ตัวอย่างการใช้งาน
<?php
$pdf = Yii::createComponent('application.extensions.tcpdf.ETcPdf',
'P', 'cm', 'A4', true, 'UTF-8');
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor("Nicola Asuni");
$pdf->SetTitle("TCPDF Example 002");
$pdf->SetSubject("TCPDF Tutorial");
$pdf->SetKeywords("TCPDF, PDF, example, test, guide");
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont("times", "BI", 20);
$pdf->Cell(0,10,"Example 002",1,1,'C');
$pdf->Output("example_002.pdf", "I");
?>
------------------------------------------------------------------------------------------------------------------------
credit : http://www.mindphp.com/
------------------------------------------------------------------------------------------------------------------------
Profiling แสดงคำสั่ง SQL ของ Activerecord Yii Framework
แสดงคำสั่ง SQL ของ Activerecord Yii Framework
ประโยชน์ของมันคือ เราจะได้รู้คำสั่ง sql ที่ ถูกสร้างจาก Activerecord ตรงตามต้องการหรือเปล่า นอกจากนี้ เจ้า Profiling ยังรายงานให้เราทราบว่ารันคำสั่ง sql แต่ละคำสั่ง กี่ครั้งและแต่ละครั้งใช้เวลาเท่าไร
วิธี enableProfiling
เปิดไฟล์
protected/config/main.phpเพิ่ม
'enableProfiling'=> true,
ในส่วนของ
'db'=>array(....),
จะได้
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=dbname',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'enableProfiling'=> true,
),
และเปลี่ยน
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
เป็น
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CProfileLogRoute',
'levels'=>'error, warning',
),เท่านี้เราก็จะเห็นคำสั่ง sql โชว์ขึ้่นมาด้านล่างทุกๆ หน้าของโปรแกรมของเราแล้ว
------------------------------------------------------------------------------------------------------------------------
credit : http://www.mindphp.com/
------------------------------------------------------------------------------------------------------------------------
ประโยชน์ของมันคือ เราจะได้รู้คำสั่ง sql ที่ ถูกสร้างจาก Activerecord ตรงตามต้องการหรือเปล่า นอกจากนี้ เจ้า Profiling ยังรายงานให้เราทราบว่ารันคำสั่ง sql แต่ละคำสั่ง กี่ครั้งและแต่ละครั้งใช้เวลาเท่าไร
วิธี enableProfiling
เปิดไฟล์
protected/config/main.phpเพิ่ม
'enableProfiling'=> true,
ในส่วนของ
'db'=>array(....),
จะได้
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=dbname',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'enableProfiling'=> true,
),
และเปลี่ยน
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
เป็น
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CProfileLogRoute',
'levels'=>'error, warning',
),เท่านี้เราก็จะเห็นคำสั่ง sql โชว์ขึ้่นมาด้านล่างทุกๆ หน้าของโปรแกรมของเราแล้ว
------------------------------------------------------------------------------------------------------------------------
credit : http://www.mindphp.com/
------------------------------------------------------------------------------------------------------------------------
เริ่มต้นกับ YII
เนื่องจากช่วงนี้เริ่มมองหา การเขียนโปรแกรมในรูปแบบของ OOP อันด้วยเหตุต้องทำงานใหม่ทั้งการจัดการเวปไซต์และระบบฐานข้อมูลจากการหาข้อมูลและเปรียบเทียบแล้วนั้นเป็นอันได้มาจบลงที่ YII FRAMEWORK ครับ
ใน blog ของผมนี้จะพยายามรวบรวมส่วนที่เป็น tip และอื่นๆ ที่จำเป็นมาไว้รวมกันหลักๆ ก็ใช้งานเองครับ อิอิ ส่วนเพื่อนๆคนใหนสนใจหรือมีข้อแนะนำแลกเปลี่ยนยินดีเลยครับ เพราะผมก็พึ่งหัดเขียนและมาจับ YII เช่นกันครับ
ใน blog ของผมนี้จะพยายามรวบรวมส่วนที่เป็น tip และอื่นๆ ที่จำเป็นมาไว้รวมกันหลักๆ ก็ใช้งานเองครับ อิอิ ส่วนเพื่อนๆคนใหนสนใจหรือมีข้อแนะนำแลกเปลี่ยนยินดีเลยครับ เพราะผมก็พึ่งหัดเขียนและมาจับ YII เช่นกันครับ
Subscribe to:
Posts (Atom)