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 ของมันครับ

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

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

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

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

  • 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