ทำ HMF เอง แถมทำข่าวเองเลย ฮา ….
วันนี้นั่ง implement ตัว Form Component และ DateTime Component ของ HMF ซึ่งกำลังไปได้ดี แต่สิ่งที่ผมลืมไปคือเรื่อง l10n และ i18n ไปสนิท เลยไล่ปรับใหม่สำหรับ Form และ DateTime (ผม note ใส่ใน TODO ของ project ไว้แล้ว แต่ไม่ได้สังเกตเลย) ทำให้ไล่หลายส่วนใหญ่ ซึ่งต้องไล่ส่วน Runtime, Configuration-file และ Component ที่เกี่ยวกับ l10n และ i18n ทั้งหมด เพื่อให้มันรองรับได้ตั้งแต่ต้น เหตุผลง่าย ๆ ในการรองรับ l10n และ i18n ตั้งแต่ pre-version เพราะผมอยากให้มันทำงานได้หลายภาษาตั้งแต่ต้นเลย และการมาไล่ปรับทีหลังหลังจากปล่อย pre ไปแล้ว อาจทำให้ app ของนักพัฒนาที่เอา pre-version ไปก่อนอาจมีปัญหาความเข้ากันไม่ได้เมื่อออก version ใหม่ ๆ ออกมา ซึ่งจริง ๆ มันก็มีความเสี่ยงอยู่แล้ว ไม่ว่าจะมี version ใด ๆ ออกมา แต่อยากให้น้อยที่สุดใน pre-version เพราะถือว่าเป็นการออกตัวครั้งแรก อยากให้ประทับใจในหลาย ๆ ส่วน
แต่ก็ยังมีข่าวดีตรงที่ผมทำ content-page แบบ multiple ได้แล้วในตอนนี้ ด้วยเหตุผลที่ว่า ถ้าทำ sigle master/content-page นี่มันดูเฉย ๆ และน่าจะยุ่งยาก ผมเลยนั่งไล่ปรับตัว content-page ของ RenderView ให้รองรับ multiple ของ content-page ได้ตั้งแต่ต้นเลย โดยส่วนของ RenderView หลายส่วน นั้นได้แนวคิดจาก PHPTemplate ของ Drupal มาด้วย โดยเอามาผสมกับ MasterPage ของ ASP.NET ครับ
ส่วนตัว Form Component กะว่าจะทำให้มันคล้าย ๆ กับ Rails (Ruby) แต่ไป ๆ มา ๆ ไม่เอาดีกว่า ทำตามแนวทางเดิม แต่เพิ่มความสะดวกลงไป น่าจะ work กว่า และกะจะ build-in ลงใน Smarty เป็น function นึงที่มา call กับ Form Component แต่ ไป ๆ มา ๆ ไม่เอาดีนั้นแหละ ใช้วิธีสร้าง object ในตัว Controller แล้วโยนใส่ View ไปเลยง่ายกว่าเยอะ (ไม่เสียเวลาด้วย)
ตอนนี้ไล่ปรับหลายส่วนพยายามให้เท่ากับ version 0.1 ให้ได้ (ตัวนี้ไม่ได้ปล่อยออกมา เพราะใช้ยาก แต่ก็เป็นตัวที่เอาไว้รับงานประทังชีวิตไว้หลายงานเหมือนกัน)
ลองดู CodeIgniter สิครับ
ว่าจะถามนานแล้ว แต่ลืมไป เห็นใน require มี PEAR อยู่แล้ว
ทำไมถึงยังต้องใช้ Smarty อีก ทั้งๆที่ใน PEAR มี HTML_Template_IT
ซึ่งดูแล้วไม่เห็นแตกต่าง แบบว่าผมไม่เคยลอง Smarty ช่วยบอกข้อดีหน่อยครับ
kaze – ตอนนี้ผมถอดเอา PEAR ออกไปแล้วครับ รู้สึกจะซ้ำซ้อนกับ Zend หลายส่วน
แล้วก็ที่ใช้ Smarty เพราะว่ามีคู่มือ และ support ที่ค่อนข้างดี และมี documents เยอะมาก ๆ ในคู่มือมีแยกชัดเจนระหว่าง programmer และ designer ครับ ทำให้แยกการออกแบบด้านเว็บ กับการเขียนระบบออกจากกันได้ชัดเจนมากขึ้นครับ
ตอนนี้ผมจัดการพวก Error report, logs และพวก l10n/i18n ได้เกือบหมดแล้วครับ คือตอนนี้กลายเป็น Framework ที่ครอบระหว่าง Zend Framework กับ Smarty Template Engine ครับผม โดยมี components ที่ผมเขียนขึ้นมาเองรวมอยู่ด้วย
และ Smarty ที่ผมใช้เป็นการนำเอามาทำเป็น Nested Smarty ครับ คือใช้ instant ของ Smarty มาซ้อนกันเพื่อทำ Masterpage และ Multi-Contentpage ครับผม
แต่ผมก็ไม่เคยใช้ HTML_Template_IT นี่เหมือนกันในอนาคตหลังจากปล่อยแล้ว อาจจะทำให้รองรับหลาย ๆ Template Engine ครับ
อิอิ เหมือนผมเลย ผมก็ใช้ HTML_Template_IT ทำ Masterpage เหมือนกัน
ดูตัวอย่างแล้วมันเหมือนกันมาก ส่วน CodeIgniter ผมดู video presentation
แล้วรู้สึกว่า view ทำออกมาแล้ว มันทำตัวเป็น view + view controller ซะมากไป
ไม่ได้เป็นลักษณะ view & template
ซึ่งผมว่า view controller น่าจะรวมอยู่ใน controller (.php) มากกว่า
kaze – เรื่อง CodeIgniter นี่บางส่วนผมก็เอามาปรับใช้ในบางส่วนเหมือนกัน แต่ไมไ่ด้เกี่ยวกับ MVC เท่าไหร่ ส่วนใหญ่จะเป็นเรื่อง Logs กับ Error Tracking มากกว่า