ความคืบหน้า PHP Hoffman Framework

  • ทำการ redesign ตัว clean url ใหม่อีกรอบ ด้วยการกลับมาใช้แบบเดิมเมื่อตอนออกแบบครั้งแรกคือ controller/action แทน ส่วนต้องการแก้ไข url ใหม่ ก็เพิ่มลงไปใน xml เอา โดย default คือ <map pattern=”:controller/:action” /> ถ้าต้องการใช้ user/login เป็น login เฉย ๆ ก็ <map pattern=”login” action=”user/login” /> แทนซะ หรือถ้าต้องการ rewrite ตัว url ที่มีการส่ง value ด้วยก็ <map pattern=”news” action=”page/show/1″ /> แทนก็ได้เช่นกัน โดยในรุ่นต่อไปจะมี plugin เสริมสำหรับการ hook ตัว xml ตัวนี้ให้ไปใช้ database ได้ แบบเดียวกับ drupal แทนช้าลงและโหลด db มากขึ้น กำลังจุดลงตัวในส่วนนี้ โดย clean url นี้มีประสิทธิภาพเพิ่มขึ้นเยอะกว่าเดิมมาก และลดความซับซ้อนในการตั้งค่าลงไปเยอะด้วย แต่ต้องแลกกับความยืดหยุ่นบางส่วนไป แต่ถ้าว่า ok กว่าเดิมมาก ๆ ในตอนนี้
  • หน้า error handler page นั้น ok แล้ว เพื่อดักข้อผิดพลาดในกรณีไฟล์ของ controller หรือ view ไม่มี รวมถึง arguments ไม่ครบเมื่อ controller ไป handle ตัว action
  • ตัว config ไฟล์ใน .ini file และสามารถทำ inherit config ได้ด้วย เช่น
[production]
database.default.type=mysql
database.default.hostname=localhost
database.default.username=root
database.default.password=1234
database.default.name=album

[development : production]
database.default.hostname = localhost
database.default.username = root
database.default.password = 1234
  • เมื่อเราเลือก production เป็น environment มันจะไปดึงตัว config มาของ production มา แต่ถ้าใช้  development ก็จะไปดึงส่วนของ development ที่ override ตัว production มาใช้เท่านั้น ทำให้ลดการตั้งค่าลงไปเยอะ
  • ในส่วนของ Model layer มี 3 ทางเลือกให้ extends มาใช้งานได้ คือ Zend_Db, Doctrine หรือ LogicModel (ตัวนี้ผมเขียนเอง สนับสนุนแค่ MySQL เท่านั้น) โดยใครถนัดแบบไหนก็ใช้แบบนั้นได้เลย เพียงแค่ตั้งค่าใน Model แต่ละตัวว่าจะใช้แบบไหน กำลังหาจุดลงตัวเพื่อให้เราสามารถใช้ Model ได้หลากหลายรูปแบบการ extends จาก 3 ทางเลือก บางครั้ง Model บางตัวอาจจะเหมาะกับ Doctrine มากกว่า 2 ตัวที่เหลืออะไรแบบนั้น และอาจจะรองรับการเขียนด้วย function mysql(i) เดิม ๆ ได้ด้วย โดยผมมองว่า Model นั้นเป็น Business logic ซึ่งควรมี performance สูงที่สุดในการเขียนและนำไปใช้งานครับ
  • การส่งข้อมูลจาก controller ไปหา view นั้นใช้การ return ของ action ใน controller นั้น โดยการส่งข้อมูลแบบตัวแปรเดียวก็ได้ หรือส่งเป็น array ออกไปก็ได้ โดยส่งเป็น array จะทำการ fetch ข้อมูลให้ชั้นนึงเพื่อส่งผ่านเป็นตัวแปรนึงใน view ให้เลย โดยใช้การ map key เป็นชื่อตัวแปรใน dimension ที่ 1 ของ array ซะ
  • พยายามเอา ORM หลาย ๆ ตัวมาใช้ร่วมกันใน Model เพื่อลดการยึดติดของระบบกับรูปแบบ ORM ของตัวใดตัวหนึ่ง
  • ยังคงใช้ Zend แบบหลักในการพัฒนาระบบภายในเช่นเดิม

ตอนนี้โดยรวมพยายาปั้นตัวแรกออกมาให้ได้ก่อน เพื่อเอามารับคำติของทุกท่านครับ เพื่อเอามาพัฒนาต่อไปครับผม

 

เปิดตัว NungSueDD.com เว็บร่วมด้วยช่วยกันแนะนำหนังสือดี ๆ

หลังจากจดชื่อนี้มาได้สัก 1 เดือนได้ และทำการ setup ตัว Drupal ตัวล่าสุดและ module ต่าง ๆ พอสมควร ตอนนี้ก็พอสามารถเปิดให้ใช้งานได้แล้วในวันนี้ อาจจะไม่สมบูรณ์นักในตอนนี้ แต่อยากให้คนที่อ่านหนังสือ และประทับใจหนังสือที่ตัวเองอ่านมาช่วยกันแนะนำหนังสือของตนครับ

ที่ http://www.nungsuedd.com / NungSueDD.com ครับ

โดยตัวระบบสมาชิกรองรับ OpenID เพื่อสะดวกสำหรับคนที่มี OpenID อยู่แล้วครับ

โดย user ที่สมัครจะได้พื้นที่สำหรับ upload ไฟล์คนละ 20MB ครับ และ 150KB ต่อไฟล์ เพื่อใช้สำหรับ upload ไฟล์รูปภาพหนังสือต่าง ๆ ครับ

image

โดยสามารถ upload ไฟล์เป็นไฟล์แน็บได้ผ่านระบบไฟล์แน็บ

image

มีระบบ Editor ที่ช่วยในการเขียน ซึ่งจะมีการปรับปรุงต่อไป เพื่อมีลูกเล่นเพิ่มเติมลงไปอีกครับ

image

โดยการเขียนนั้น เราได้เตรียมส่วนของข้อมูลของหนังสือไว้ให้เลย เพื่อความสะดวกในการสืบค้นต่าง ๆ ได้ง่าย ๆ

image

ส่วนเรื่องของราคาของหนังสือผมได้ทำตัวเลือกของสำหรับอัตราแลกเปลี่ยนให้ด้วยครับ เพื่อเหมาะสมในการค้นหา และคำนวณกลับไปมาได้ครับผม

โดยในส่วนของการกรอกข้อมูลจะมี ISBN ทั้งแบบ 10 และ 13 ครับ เพื่อนำไปสืบค้นต่อได้ทั้งในห้องสมุดและนำไปซื้อได้ในร้านหนังสือและเว็บขายหนังสือต่าง ๆ ครับ

นี่อาจจะเป็นก้าวแรกในการทำเว็บหนังสือเว็บแรกของผม ผมเป็นคนชอบอ่านหนังสือ แต่หาเว็บแนะนำหนังสือที่มีระบบจัดการภายในที่ดีนั้นในไทยยังหาไม่ได้ และผมคิดว่าถ้าอยากได้ต้องทำเอง เลยทำมันลงไปซะเลย ถ้าไม่ดียังไง ท่านคือผู้สร้างเนื้อหาสามารถร่วมด้วยช่วยกันแนะนำ ติชมระบบจัดการภายในได้ที่ผมครับ ผมจะปรับปรุงระบบให้ระบบใช้งานง่ายมากขึ้นครับ

ตอนนี้ระบบยังไม่นิ่ง แต่จะไม่ทำให้ข้อมูลที่ท่านใส่หายไปครับ ;)

 

เบื่อ …

ราชาจะสามารถทำร้ายกองทัพได้ด้วยเหตุผล 3 ประการ

1. ไม่เข้าใจว่ากองทัพจะบุกรุดหน้าไม่ได้แล้วกลับสั่งให้บุกรุดหน้า ไม่เข้าใจว่ากองทัพไม่อาจถอยได้แล้วกลับสั่งให้ถอย นี่เรียกว่าผูกมัดจำกัดความเคลื่อนไหวของกองทัพ

2. ไม่เข้าใจการบริหารภายในของกองทัพแล้วกลับยื่นมือเข้าแทรกแซง ทหารทั้งกองทัพจะงุนงงในกฎของทัพอันไม่เป็นหนึ่งเดียว

3. ไม่รู้กลศึกแต่กลับแทรกแซงการบังคับบัญชาของกองทัพ ทั้งแม่ทัพนายกองและพลทหารจะเกิดความอึดอัดไม่มั่นใจ ในเมื่อกองทัพทั้งสับสนและอึดอัดมึนงงไม่มั่นใจ ก็จะเป็นสร้างสร้างโอกาสให้แคว้นอื่นฉกฉวยช่องว่างนี้เข้าจู่โจม นี่คือที่กล่าวกันว่าทำลายกองทัพของตัวเอง

ซุนวู

สิ่งที่คุณไม่รู้ไม่ได้สร้างปัญหาให้คุณ สิ่งที่คุณมั่นใจว่ารู้แต่กลับรู้ไม่จริงต่างหากที่เป็นปัญหา

An Inconvenenient Truth

เบื่อ เซง ……

 

เพลินกับ TPBS (สารคดีแบบ 2 ภาษา)

ตั้งแต่ TPBS เริ่มทดลองออกอากาศมาสักพัก นั่งดูสารคดีทุกวันเลย รู้สึกว่าชีวิตมีความหวังกับสารดคีในช่องฟรีทีวีขึ้นมาอย่างมากมาย แถมด้วย NICAM ที่สามารถฟังเสียงได้ 2 ภาษา ทั้งไทยและอังกฤษ ช่วยฝึกภาษาไปในตัวด้วย แหม เยี่ยม ๆ

แหมว่าสารดคีจะวน ๆ ไปบาง แต่ก็ถือว่า ok สำหรับคนที่พลาดชมรอบก่อน ๆ แต่ก็ดูเพลินดี (ขนาด true vision ยังวนเลยครับท่าน) หวังว่าจะเป็นแบบนีไปเรื่อย ๆ

อ่อ ลืมไป ควรจะมีการถ่ายทดสดบอลไทยเยอะ ๆ ครับช่องนี้ ช่องอื่นถ่ายบ้างไม่ถ่ายบ้าง ช่องนี้น่าจะเอาบอลไทยมาถ่ายเยอะ ๆ ครับ (ทั้งทีมชาติและบอลลีก)