Tag Archives | Play framework

@With @Before @Check @Playframework

หลังจากพึ่งพา Security module มานานและขัดใจกับ @With(Secure.class) ที่ method ทั้งหมดจะ access ได้ต้อง authen ก่อนแต่บาง method ไม่ต้องการอย่างนั้นเลยต้องสร้าง class แยก วันนี้ลองขุดๆ code security module ดูถึงรู้ว่าจริงๆ แล้ว @With มีหน้าที่อะไร และ @Before ทำอะไรได้ และ @Check จริงๆ แล้วมันทำงานยังไง @With ใช้สำหรับรวม method ของ Class เข้าด้วยกันทำให้ annotation ต่างๆ เช่น @Before @After… มองเห็นข้าม class ที่ถูกประกาศไว้ เช่น จาก code ด้านบนเมื่อเรียกมาที่หน้า B.show จะมีการเรียก setup และ tearDown ก่อนและหลังจากที่ [...]

Read full story Comments { 1 }

Play! Suspend Job

เวลาเจอ request ที่ต้องประมวลผลนานกว่าปกติ ถ้าใช้ method ปกติ handle Play! จะยกเลิก thread นั้นทิ้งทำให้ไม่ได้ผลลัพธ์อย่างที่ต้องการ เช่นย่อภาพ หรือหมุนภาพแล้วต้องการรู้ว่าเสร็จเมื่อไหร่เพื่อเอามาแสดง คนทำ Play! ก็คงรู้เลยทำ Suspend Job ไว้ให้สำหรับงานแบบนี้โดยเฉพาะ ลองดูตัวอย่างหมุนภาพด้านล่าง เริ่มจาก class ที่ทำหน้าที่ในการหมุนภาพไปทางขวาเก้าสิบองศา จากนั้น controller ที่รับ request มาเพื่อหมุนภาพ ใน Play! ยังมี Job อีกสองแบบคือ Bootstrap Job และ Scheduler Job ซึ่งใช้บ่อยพอสมควรเหมือนกันและก็ทำหน้าที่ตามชื่อคือ ทำงานตอนเริ่มต้น หรือ ตามเวลาที่กำหนด หน้าตาก็จะคล้ายกับ Suspend Job ไว้มีเวลาอีกจะค่อยๆ มาเขียนไว้อีกที

Read full story Comments { 0 }

ส่งเมลใน Play 1.1 RC1

ตอน Play 1.1 ออก beta 2 คิดว่าระบบเมลเปลี่ยนไปไม่มากคือใช้ Class Mail wrap เนื้อความในจดหมายว่าจะส่งอะไรแต่พอ Play 1.1 RC1 ออกมาพร้อมเอกสารพบว่ามันเปลี่ยนไปเยอะมาก และทำให้ง่ายขึ้นเพราะว่านอกจากจะส่งเมล์แบบเดิมได้แล้ว ยังสามารถทำในรูปแบบ Template ด้วยคือรูปแบบของเนื้อเมลไม่ต้องใส่ไว้ใน code แล้ว เริ่มจากสร้าง Class ที่ extends มาจาก Mailer ใน package notifier จากนั้นสร้าง template โดยสร้างแฟ้มตามชื่อคลาส อย่างด้านบนคือ Mails และสร้างไฟล์ html หรือ txt ตามชื่อ method ที่อยู่ในคลาส สามารถสร้างไฟล์ text อย่างเดียวได้ เพราะถ้า Play หาไฟล์ html ไม่เจอจะใช้ต้นแบบ text ในการส่ง ไฟล์ app/views/Mails/welcome.html ไฟล์ [...]

Read full story Comments { 0 }

Play101: Hello, World

เยินยอ Play ไปสองครั้ง ไม่ได้ทำให้ดูเสียทีว่ามันง่ายยังไง วันนี้เหมือนว่างเลยเขียนซะหน่อย สิ่งที่ต้องเตรียมก่อนเลยคือ Java ไม่แน่ใจว่าใช้ JRE อย่างเดียวได้หรือป่าว แต่เพื่อความปลอดภัยก็ดาวโหลด JDK มาก่อนก็ได้ (ส่วนตัวคิดว่าได้ แต่ยังไม่เคยลองเหมือนกัน) Play framework ดาวโหลดเสร็จก็นำไปวางไว้ซักที่ จากนั้นกำหนด path ไปที่ directory นั้นเพื่อให้ใช้คำสั่ง play ได้ มาลองกับโปรแกรมง่ายอย่าง Hello, World ก่อน เอาแค่เข้าหน้าแรกแล้วแสดงคำว่า Hello, World ขึ้นมา ใน Terminal/Shell/Command Prompt รัน play new จากนั้นจะใส่ชื่อ project ใหม่ก็ได้ หลังจากใส่เสร็จ play จะสร้าง project directory ขึ้นมาให้ตามโครงด้านล่างคือ เรียกให้ทำงานโดยสั่ง play run (จะสั่ง play run เลยก็ได้ถ้าเปลี่ยน [...]

Read full story Comments { 0 }

Play 1.1 Beta 2

หลังจากผ่านไป 1 ปี Play 1.1 ก็ออก beta 2 แล้ว วันนี้ก็เลยพยายามว่างเล่นซะหน่อย พบว่าเปลี่ยนไปเยอะมาก แม้ว่าโค้ดเดิมที่ใช้ใน Play 1.0 จะยังใช้ได้อยู่ แต่ก็มีบางส่วนที่ต้องแก้ตามแน่นอน เขียนเป็นข้อ ๆ เลยละกัน Mail API จากเดิมที่ method รวม parameter ทุกอย่างมาให้ ตอนนี้ต้องย้ายไปใช้ object ต่าง ๆ จาก Apache Common Email แทน (Apache มีทุกสิ่งให้เลือกสรรจริง ๆ) NIO Framework เปลี่ยนใหม่หมดจากเดิมที่เป็น [Mina](http://mina.apache.org/) แต่ถูกดองไว้เพราะไม่สามารถแก้มาเป็น RC ได้ แถม Mina ก็ดองมาเรื่อย ๆ ไม่ออก Release ซะที (พึ่งจะมา release ได้ไม่นานมานี้) [...]

Read full story Comments { 0 }