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

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

13.3.13

How to install ChartDirector on Linux Server

สำหรับการติดตั้ง php ChartDirector บน Linux Server มีขั้นตอนดังนี้
หลังจากเราได้ทำการ login ผ่าน ssh เข้าไปที่ web server ของเราแล้ว ให้เข้าไปที่ directory web root ของเราก่อน ในที่นี้ server ผม มี web root directory อยู่ที่ /var/www/html  

[root@host lib]#cd /var/www/html  
(ไม่ต้องพิมพ์ [root@host lib]# นะ)

จากนั้น ทำการดาวน์โหลดไฟล์ที่ถูกบีบอัดจากเว็บของ advsofteng.com ที่เก็บ ChartDirector ผมใช้วิธีก๊อปปี้ลิ้งค์จากหน้าเว็บ แล้วดาวน์โหลดด้วยคำสั่ง wget 

Copy link ChartDirector

[root@host html]# wget http://download2.advsofteng.com/chartdir_php_linux.tar.gz

รอสักครู่ (ใช้เวลาแปรผกผันตามความแรงของอินเตอร์เนตของเรา)

ซึ่งน่าจะได้ไฟล์ chartdir_php_linux.tar.gz อยู่ในโฟวเดอร์ที่เราอยู่ตอนนี้ (นั่นก็คือ /var/www/html )

แตกไฟล์ ด้วยคำสั่ง

[root@host lib]#gunzip chartdir_php_linux.tar.gz

แล้วตามด้วย

[root@host html]# tar xvf chartdir_php_linux.tar

ทีนี้ เราต้องก๊อปปี้ไฟล์ไลบรารี่ของ ChartDirector ไปไว้ที่ extension ไดเรกทอรี่ของ linux แต่ก่อนจะก๊อปปี้ไฟล์ไลบรารี่เหล่านั้น ต้องทำการเข็คก่อนว่า php มองเห็น  extension ไดเรกทอรี่ของ linux อยู่ที่ไหน ด้วยคำสั่ง

[root@host html]# php -r "phpinfo();" | grep extension_dir

จะได้
extension_dir => /usr/lib/php/modules/ => /usr/lib/php/modules/
sqlite3.extension_dir => no value => no value
[root@host html]#

ผมได้คำตอบว่า อยู่ที่ /usr/lib/php/modules/

ผมทำการก๊อปปี้ไฟล์ที่อยู่ในโฟวเดอร์  ChartDirector/lib/ ทั้งหมดไปไว้ที่ /usr/lib/php/modules/

[root@host html]# cp -R ChartDirector/lib/* /usr/lib/php/modules/.

จากนั้น จะต้องทำการกำหนดให้ php เรียกไฟล์ไลบรารี่ให้ตรงกับเวอร์ชั่นของ php  ซึ่งเราต้องทำการเช็คเวอร์ชั่น php ของเราก่อน ด้วยคำสั่ง php -v

[root@host modules]# php -v
PHP 5.3.3 (cli) (built: Jul  3 2012 16:40:30)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

ของผมเวอร์ชั่น 5.3.3 ซึ่งถ้าดูตามคู่มือของ ChartDirector แล้ว ผมจะต้องทำการกำหนดให้ php เรียก phpchartdir530.dll

Select ChartDirector library file version

ดังนั้น ผมต้องเข้าไปกำหนด extensionไฟล์ ใน php.ini ซึ่งใน linux จะเก็บไฟล์นี้ไว้ที่ /etc/php.ini 

เข้าไปแก้ไขไฟล์นี้ด้วยคำสั่ง

[root@host html]# vim /etc/php.ini

มองหาบรรทัด extension_dir="/usr/lib/php/modules/"
แล้วเพิ่มบรรทัด extension="phpchartdir530.dll"  ต่อท้ายบรรทัดดังกล่าว

ทำการบันทึกไฟล์ php.ini 

ทำการรีสตาร์ทเซอร์วิส apache เพื่อให้การกำหนดค่าของเรามีผล (บังคับใช้) ด้วยคำสั่ง /etc/init.d/httpd restart

[root@host html]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@host html]#

ถ้าไม่มี Error ใดๆ ก็น่าจะสำเร็จ ให้ลองเปิดตัวอย่าง ChartDirector ของเรา ผ่านหน้าเว็บบราวเซอร์

http://ชื่อhostของเรา/ChartDirector/phpdemo/ น่าจะปรากฏตัวอย่างกราฟให้เราเห็น

ChartDirector Demo

ขอให้สนุกกับ ChartDirector ครับ

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

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

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