Testing your PEAR::DB_DataObejct
Posted by PunNeng, Thu Dec 15 00:29:00 UTC 2005
NOTICE: post นี้ ข้อมูลเก่าครับ ว่ากันง่ายๆ เลย ผมขี้เกียจแก้ละ :)
บางคนที่ไม่เคยลองมาก่อน อ่านแล้วมันคงงงๆ น่าดู มาลองของจริงกันเลยดีกว่า แต่ต้องติดตั้ง PEAR::DB_DataObject เสร็จก่อนนะครับ
ที่ผมจะแสดงให้ดู จะเป็นหน้าง่ายๆ หน้านึง มีข้อมูล มีปุ่ม คอยเพิ่ม ปรับปรุง และลบข้อมูลที่ถูกแสดง
โดยจะเขียนตาม MVC design pattern(จะเอามาเล่าในคราวหลัง)
จะมีโครงสร้างง่ายๆ ดังนี้
root -pearTest folder -pear_dbTest.php -> view -manage.php -db.ini -Controller folder -> Controller -UserMgr.php -Mgr.php -DataObjects folder -> Model -Members.php -> ได้จากการ generate -peartest.ini -> ได้จากการ generate
อันดับแรก คงต้องไปสร้างฐานข้อมูลก่อน

Database name: peartest table: member
จากนั้น เราต้องการตัว class ที่จะทำหน้าที่เป็น Database เสมือน โดยตัว code ที่จะทำการ generate อยู่ที่ php\pear\DB\DataObject\createTables.php แต่ก่อนจะทำการ generate ต้องสร้าง configuration file ก่อน db.ini
- ผมใช้ XAMPP ครับ ไม่ได้ใช้ AppServ path บางตัวอาจจะไม่คุ้น ตัว folder ที่เป็นที่เก็บ source file จะเป็น peartest ถ้าเป็นใน AppServ ก็ควรจะอยู่ในหน้า root ของเว็บ
แล้วก็ไปเปิดหน้าต่าง dos ขึ้นมา แล้วเข้าไปใน php folder แล้วพิมพ์ว่า
php pear\DB\DataObject\createTables.php ..\htdocs\peartest\db.ini
ผลที่ได้
D:\apachefriends\xampp\php>php pear\DB\DataObject\createTables.php ..\htdocs\pea rtest\db.ini DB_DataObject_Generator : 0 : CREATING FOR peartest DB_DataObject_Generator : 0 : calling generateDefinitions DB_DataObject_Generator : 0 : Generating Definitions file: DB_DataObject_Generator : 0 : Writing ini as D:\apachefriends\xampp\htdo cs\peartest\DataObjects/peartest.ini DB_DataObject_Generator : 0 : calling generateClasses DB_DataObject_Generator : 0 : writing DataObjects_Member DB_DataObject_Generator : 0 : DONE
สิ่งที่เราจะได้หลังจากการ generate คือ Member.php กับ peartest.ini ลองเปิดดูได้
ถัดมา ก็มาดูที่หน้าที่ไว้แสดงหน้าตาง่ายๆ pear_dbTest.php
และ manage.php
และฝั่งที่ไว้ควบคุม ใน Controller folder จุดหมายหลัก อันนี้จะใช้ตัว DB_DataObject ซะที ลองดู code นะว่ามันง่ายขนาดไหน UserMgr.php
สังเกตได้เลยว่าไม่มี sql command สักตัว เย้ๆๆๆ ชอบๆ และตัวที่ไว้ Connect กับ Database Mgr.php
ปล. จริงๆ จะให้ดูแค่ code ตรงส่วนที่ใช้ PEAR::DB_DataObject เขียน แต่เดี๋ยวจะไม่เห็น ไม่ชัดเจน
ปอ. code เยอะจัด ขี้เกียจอธิบาย ไปแกะกันเองเน้อ ไม่เข้าใจตรงไหน โพสถามได้เลย
แก้ไขล่าสุด วันที่ 29 มิถุนายน 2550 เวลา 2.15 น.