Showing posts with label Yii Framework. Show all posts
Showing posts with label Yii Framework. Show all posts

7.3.14

Yii CGridView: Render customized

ถ้าต้องการเปลี่ยนการแสดงผลแค่บาง Cell ใน GridView table ใน Yii Framework วันนี้ ลองเอาวิธีที่ผมลองนำวิธีจาก
CGridView: Render customized/complex datacolumns  มาใช้ดูครับ

จากโจทย์ที่ต้องการ คือผมต้องการเปลี่ยนสีของตัวหนังสือที่อยู่ใน Cell ของช่องข้อมูลที่ต้องการ โดยจะทำการเปรียบเทียบ หากข้อมูลในช่องนั้น มีค่ามากกว่า  0 ให้ทำการเปลี่ยนสีฟอนต์ของตัวหนังสือให้เป็นสีแดง ดังรูป

อันดับแรกให้ทำการเพิ่ม function ใน Class ใน Controller ก่อน ในที่นี้ ผมทำการเพิ่ม function renderGridCell ใน QuizController เพื่อให้ส่วนของ View ทำการเรียก renderGridCell ไปใช้งาน

protected function renderGridCell($data)
{
    //var_dump($data);
    if($data["cnt"]>0){
         echo '<font color="red">'.$data["cnt"].'</font>';
    }  else {
          echo $data["cnt"];
    }
}

ในส่วนของ View ที่ Widget bootstrap.widgets.TbGridView ผมทำการเรียกใช้  renderGridCell ดังรูป

CGridView: Render customized/complex datacolumns
เมื่อแสดงผล เราจะได้ตัวหนังสือสีแดง เมื่อค่าที่นำมาเปรียบเทียบมากกว่า 0

CGridView: Render customized/complex datacolumns

ลองนำไปประยุกต์ใช้กันดูนะครับ ขอให้สนุกกับ Yii Framework นะครับ

อ่านเพิ่มเติม...

19.12.13

yii-api-1.1.14.chm

yii_api_1.1.14.chm

     ผมมักชอบที่จะเปิดอ่านคู่มือ หรือ help จากไฟล์ CHM ซะมากกว่า ด้วยเหตุผลที่ว่า มันค้นหาคำที่เราป้อนได้ง่าย และรวดเร็วกว่า นอกจากนั้น ไฟล์ CHM ยังพกพาง่าย และไม่ใหญ่จนเกินไป ซึ่งเสียดายเพียงอย่างเดียว มันไม่สามารถ take note ลงบนไฟล์ ได้เหมือนไฟล์ pdf

วันนี้ ผมได้ลองนำ Yii API 1.1.14 class reference ซึ่งเดิมทีของ Yii official เขาทำไว้เป็น html ไฟล์ แต่ ด้วยความที่มันค้นหาคำ หรือ keyword mี่เราต้องการได้ยาก ผมจึงนำมาแปลงเป็น chm file ซะเลย ทำเสร็จแล้วก็เลยเอามาแชร์เพื่อนๆ หามีบางท่านกำลังเล่นกับ Yii framework เหมือนกับผม

เวอร์ชั่นที่นำมาแปลงนั้น เป็นเวอร์ชั่น 1.1.14 ซึ่งต่อจากเวอร์ชั่นนี้ ก็เป็นเวอร์ชั่น 2.0 ซึ่งผมก็ยังไม่ได้ลอง เพราะยังไม่เข้าใจมันเท่าไหร่ และเวอร์ชั่น 1.1.14 ก็ยังเป็นเวอร์ชั่นที่ stable อยู่ ก็เลยยังไม่คิดที่จะเปลี่ยน

ใครสนใจ Yii framework ก็ดาวน์โหลด  yii-api-1.1.14.chm ไปติดเครื่องไว้นะครับ เอาไว้ดำคำสั่งเวลาเขียนโค๊ด

อ่านเพิ่มเติม...

11.10.13

One comand make Yii Controller

หลังจากเราติดตั้ง Yii framework ไปเรียบร้อยแล้ว สิ่งที่เราต้องทดลองทำเป็นอย่างแรก คือ สร้าง Controller ด้วยของเราเอง

ในการที่จะแสดงหน้าเพจ สักหนัาหนึ่งบน Yii Framework เราจะต้องสร้างไฟล์ที่เป็น controller หลังจากนั้น ก็กำหนด method ที่เป็น action เพื่อทำงานอะไรสักอย่าง จากนั้น ก็ส่งผลลัพธ์ไปแสดงที่ view
หากเราจะสร้างเอง ก็สามารถทำได้ แต่ จะต้องทำตามที่ Yii เขากำหนดมา นั่นก็คือ

สร้างไฟล์ controller โดยชื่อนำหน้าไฟล์ XXXcontroller.php จะเป็น controller id ในที่นี้คือ XXX และต้องสร้างไฟล์ไว้ใน /protected/controllers/
จากนั้นเขียน method ภายในไฟล์นี้ โดย method ต้องมีชื่อรูปแบบ  public function actionYYY(){......} ซึ่ง YYY คือ action id

จากนั้นจะต้องไปสร้่างไฟล์ที่เอาไว้แสดงผล หรือ render ข้อมูล ในที่นี้ผมเรียกว่า view file ก็แล้วกัน โดยจะต้องมีชื่อสอดคล้องกับที่กำหนดใน method render และจะต้องสร้างไว้ใน folder ที่ชื่อเดียวกันกับ Controller id (ในที่นี้คือ XXX)ที่อยู่ภายในโฟวเดอร์ /views/ อีกที ดังนั้น จะได้ path folder /views/XXX นั่นเอง
สรุปว่าใน actionYYY จะเป็นรูปแบบนี้

public function actionYYY()
{
    this->render('ชื่อ view file')
} 

เวลาที่เราเรียกใช้งาน ก็จะเป็นรูปแบบนี้

http://localhost/myweb/index.php?r=XXX/YYY

โดยที่

r หมายถึง route หรือเส้นทางที่จะเป็นตัวบอกให้ controller เข้ามารับงานไปทำ
XXX คือชื่อ Controller id
YYY คือชื่อ action id

ซึ่งทั้งหมดนี้ เป็นขั้นตอนพื้นฐานเพื่อให้ได้หน้าเว็บ 1 หน้า ดูเหมือนจะเยอะ แต่ในแง่การพัฒนา และบำรุงรักษาโค๊ด ผมว่า Yii framework เขาทำไว้ดีแหละ

ประเด็นของหัวข้อนี้ ผมอยากจะบอกว่า มีวิธีในการสร้างหน้าเว็บบน Yii ได้เร็ว กว่าการสร้่างไฟล์ทั้งสอง สามไฟล์  โดยมีรูปแบบตามที่ผมได้บอกไว้แล้วข้างต้น ด้วยการใช้ Yiic.bat ครับ (สำหรับ Linux เราจะใช้ไฟล์ Yiic.php) ซึ่งจะทำกันบน command line console ครับ

อันดับแรกก็เปิด command line console ของเราก่อน แล้วก็เข้าไปที่ directory ทีเก็บโปรเจค yii ของเรา ในที่นี้ สมมติว่าชื่อ train ผมเก็บไว้ที่ D:\www\

cd D:\www\train

พอเราเข้าไปแล้ว ก็ให้เรียก yiic.bat ที่อยู่ใน /framework/ ภายใต้  yii directory ที่เก็บ framework ในที่นี้ ผมเก็บไว้ที่ yii-1.1.14

D:\www\train>D:\www\yii-1.1.14\framework\yiic shell

เราจะอยู่ใน shell ของ yii สังเกตว่า prompt จะเปลี่ยนไป

yiic shell

ต่อมาเราจะมาสร้าง controller สำเร็จรูปกันเลยครับ ด้วยคำสั่ง

controller [controller id] [action id]

ดังนั้น หากผมต้องการสร้าง controller id =  message และ action id ที่ชื่อ helloworl จะได้

yiic shell

ลองเช็คดูในโปรเจคใน Netbean เราจะเห็นไฟล์ถูกสร้างขึ้นมา

yii controller

ลองเรียกหน้าเว็บ http://localhost/train/index.php?r=message/helloworld ดูครับ

มันจะง่าย และชัวร์กว่า วิธีสร้างเอง นอกจาำกนี้ยังสามารถสร้าง model  form module อื่นๆ ได้อีก ลองพิมพ์ help ที่ shell ของมันครับ

อ่านเพิ่มเติม...

7.12.12

Getting started Yii Framework เอากับเขาบ้าง

     ช่วงนี้ ศึกษาหลายศาสตร์เหลือเกิน web programming , linux programming , Embedded System ก็เอา ปนเป กันไปหมด ตามประสา คนชอบศึกษา แต่ไม่ได้เอาทำมาหากินเป็นเรื่องเป็นราวเท่าไหร่

     จริงๆ ผมก็เขียน PHP มาหลายปีแหละ ตอนที่เขียนแรกๆ ผมก็ยังวนลูปไม่เป็นเลย จะปริ้นท์ตาราง table ทีหนึ่ง ก็ hard code เลย ทำที่ละ row ที่ละ column ต้องสารภาพ ว่าทำแบบนั้นจริงๆ พอเริ่มเขียนมาเรื่อยๆ ก็ไม่ไหวแหละ ก็ต้องมาวนลูปเอา เพราะความที่มันทำแบบวิธีเก่าๆ ไม่ไหว มาถึงตอนนี้ ผมก็ว่าการเขียนโค๊ดที่ต้องคอย Include เอา Header.php , footer.php , menu.php เข้ามา ผมว่ามันก็น่าเบื่อไม่ใช่น้อย และก็อีกเช่นเคย ความอดทนของผมก็เริ่มหมดไป ในที่สุดต้องหาวิธีที่มันง่ายกว่านี้หน่อย

    ผมเคยพยายามที่จะลองใช้ tool ที่ gen template ให้ แต่ก็ไม่ไหว ไม่ถนัดเอาเสียเลย จนมาเร็วๆ นี้ ได้ยินชื่อของ Framework ตัวหนึ่งที่เค้าว่ากันว่า ช่วยให้งานของเรามีระบบมากขึ้น และสามารถขจัดปัญหาเรื่องการต้องมา maintenance โค๊ดในอนาคตได้ดีเลย เพราะมันเป็นการแยกส่วนของการ coding และการ design ออกจากกัน ซึ่งนั่นแหละเป็นสิ่งที่ผมตามหามานาน (หลังจากที่พยายามทำเองมาหลายครั้ง แต่ก็เละทุกครั้ง T_T )

Yii Framework

    Yii Framework เป็น PHP Framework ตัวหนึ่งในหลายๆ Framework ที่ช่วยให้นักพัฒนาโปรแกรม PHP สามารถทำงานได้อย่างสะดวก ภายใต้รูปแบบการพัฒนาโปรแกรมตามแบบฉบับของ Yii Framework ซึ่งออกแบบให้ Framework ทำงานแบบ MVC โดยแยกส่วนของการออกแบบ Design และ การ Coding ออกจากกัน นอกจากนี้ ยังทำให้ผู้ที่มาพัฒนาต่อนั้น ไม่เกิดความสับสนกับสไตล์ของแต่ละคน เพราะว่า ผู้ที่ใช้ Yii Framework จะต้องทำตามรูปแบบ Framework ตัวนี้ วางเอาไว้ ซึ่งทำให้เกิดทิศทางในการพัฒนาระบบใหญ่ๆ ไปในทิศทางเดียวกัน

Yii Framework MVC model

    Yii Framework เป็น Framework ที่ได้รับการจัดอันดับให้เป็น Framework อันดับหนึ่ง หลายปีซ้อน นั่นแหละทำให้ผม สนใจที่จะศึกษา Framework ตัวนี้ และหาหนทางที่จะนำมันมาใช้กับงานปัจจุบันของผมให้จงได้ เพราะผมทนไม่ได้กับการเขียนโค๊ดแบบเดิมๆ ของผมอีกต่อไปแล้ว :P

Yii Framework Performance

มาเริ่มกันเลยดีกว่า

- ก็เริ่มจากดาวน์โหลดโค๊ด จาก http://www.yiiframework.com/download/ เลือกเวอร์ชั่นที่ stable แล้ว
- แตกไฟล์ออก ใน webroot folder ของเรา (ซึ่งของผมเก็บไว้ที่ C:\AppServ\www ) จะเปลี่ยนชื่อโฟล์เดอร์หรือเปล่า ก็ตามแต่ใจ
- ทดลองเรียก http://localhost/yiiRoot/requirements/ เพื่อเช็คความพร้อมของระบบของเรา ซึ่งน่าจะไม่มี Failed สีแดงเกิดขึ้น
- สร้างเว็บโปรเจคของเราด้วย command line ครับ ผมเรียกคำสั่ง C:\AppServ\www>php yiiRoot\framework\yiic webapp myweb
- ผมได้โปรเจค myweb เก็บไว้ที่ webroot
- ทดสอบเรียกโปรเจคของเรา http://localhost/myweb/

สำเร็จแหละ ต่อไปก็เริ่มลุยกับโปรเจคได้เลย อ่าน manual , tutorial , แล้วก็ศึกษาเรื่อง OOP และ Array ของ PHP ให้ชำชอง

แล้วพบกันใหม่ครับ

อ่านเพิ่มเติม...
 

เกี่ยวกับฉัน(ไหมเนี้ย)

รายการบล๊อกอื่นๆ

  • Solved: error: 'TKD2' was not declared in this scope, LIFA_Base compile error - วันนี้ จะมาเล่าถึงปัญหาที่เจอในการเบิร์นโค๊ด LIFA_Base ที่เราใช้ในการทำให้ Arduino ของเราสามารถรับคำสั่งจาก LabVIEW ได้ ปัญหานี้ เริ่มเกิดขึ้นตอนที่ Ard...
  • Type-Fu : Typing practice game online - หากใครที่สนใจ หรือจะต้องทำงานเกี่ยวกับคอมพิวเตอร์ หนึ่งในความจำเป็นก็คือ จะต้องเรียนรู้ที่พิมพ์สัมผัสได้ เพราะการที่พิมพ์สัมผ้สได้ มันได้ประโยชน์หลายๆ อย...

Blog อื่นๆ ที่น่าติดตาม

เหล่าบรรดา Blogger