พื้นฐาน Play Framework
เริ่มต้นใช้งาน Play ทำความเข้าใจสถาปัตยกรรม และตั้งค่าเว็บแอปพลิเคชันแรกของคุณ
พื้นฐาน Play Framework เป็นบทเรียน Scala for Backend Engineering & Functional Programming ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Scala for Backend Engineering & Functional Programming และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Scala for Backend Engineering & Functional Programming มีบทเรียนทั้งหมด 3 บทเรียน
บทนำสู่ Play Framework
ยินดีต้อนรับสู่ Play Framework! Play เป็นเฟรมเวิร์กเว็บแอปพลิเคชันแบบโอเพนซอร์สที่ทรงพลังสำหรับ Scala และ Java
เฟรมเวิร์กนี้ออกแบบมาสำหรับสร้างเว็บแอปพลิเคชันและ API สมัยใหม่ที่รองรับการขยายขนาดได้สูง โดยเน้นประสิทธิภาพของนักพัฒนาและประสิทธิภาพการทำงาน
แกนกลางแบบรีแอกทีฟและอะซิงโครนัส
Play สร้างขึ้นบนพื้นฐานแบบรีแอกทีฟ โดยใช้ Akka อยู่เบื้องหลัง ซึ่งหมายความว่าสามารถจัดการคำขอแบบอะซิงโครนัสและไม่บล็อกการทำงานเป็นค่าเริ่มต้น
- รีแอกทีฟ: จัดการคำขอพร้อมกันจำนวนมากได้อย่างมีประสิทธิภาพ
- อะซิงโครนัส: การดำเนินการต่าง ๆ จะไม่บล็อกเธรดของเซิร์ฟเวอร์
- ไร้สถานะ: ออกแบบมาเพื่อการขยายระบบในแนวนอน จึงเหมาะอย่างยิ่งสำหรับไมโครเซอร์วิส
สร้างโครงการ Play
หากต้องการเริ่มโครงการ Play ใหม่ คุณจะใช้ SBT (เครื่องมือสร้าง Scala) ร่วมกับแม่แบบเริ่มต้นของ Play ตรวจสอบให้แน่ใจว่าได้ติดตั้ง SBT แล้ว
เรียกใช้คำสั่งนี้ในเทอร์มินัล:
sbt new playframework/play-scala-seed.g8คำสั่งนี้จะสร้างไดเรกทอรีโครงการใหม่พร้อมโครงสร้างพื้นฐานของแอปพลิเคชัน Play Scala
โครงร่างโครงการ Play
โครงการ Play มีโครงสร้างไดเรกทอรีที่กำหนดไว้อย่างชัดเจน:
app/: มีซอร์สโค้ด Scala ของคุณ (ตัวควบคุม โมเดล และมุมมอง)conf/: ไฟล์การกำหนดค่า เช่นroutes(การจับคู่ URL) และapplication.confpublic/: ทรัพยากรสแตติก (JavaScript, CSS และรูปภาพ)project/: ไฟล์นิยามการสร้างของ SBT (เช่นbuild.sbt)test/: การทดสอบของแอปพลิเคชัน
การจับคู่ URL ด้วย `routes`
ไฟล์ conf/routes มีความสำคัญอย่างยิ่ง โดยกำหนดวิธีจับคู่คำขอ HTTP (เมธอด + พาธ) กับการดำเนินการของตัวควบคุมที่ระบุในแอปพลิเคชัน
แต่ละบรรทัดจะระบุเมธอด HTTP พาธ URL และเมธอดของตัวควบคุมที่จะเรียก
# conf/routes
GET / controllers.HomeController.index()
GET /hello/:name controllers.HelloController.sayHello(name: String)การสร้างตัวควบคุมของ Play
ตัวควบคุมคืออ็อบเจ็กต์ (หรือคลาส) Scala ที่จัดการคำขอ HTTP ขาเข้า โดยมี ฟังก์ชันการดำเนินการที่ประมวลผลคำขอและส่งคืนผลลัพธ์
โดยทั่วไปตัวควบคุมของคุณจะสืบทอดจาก BaseController และรับการฉีด ControllerComponents
package controllers
import play.api.mvc._
import javax.inject._
@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
// Action functions go here
}การกำหนดตรรกะการดำเนินการ
ฟังก์ชันการดำเนินการคือตรรกะหลักภายในตัวควบคุม ฟังก์ชันนี้รับ Request โดยนัยและส่งคืน Result (เช่น Ok, NotFound และ Redirect)
บล็อก Action { ... } จะห่อหุ้มโค้ดของคุณ ทำให้โค้ดนั้นเป็นการดำเนินการของ Play ที่ถูกต้อง
// Inside HomeController
def sayHello(name: String) = Action { implicit request =>
Ok(s"Hello, $name! Welcome to Play.")
}HTML แบบไดนามิกด้วย Twirl
Play ใช้ แม่แบบ Twirl (ไฟล์ .scala.html) เพื่อสร้างการตอบกลับ HTML แบบไดนามิก โดยให้คุณฝังโค้ด Scala ลงใน HTML ได้โดยตรง
แม่แบบมีความปลอดภัยด้านชนิดข้อมูลและผ่านการคอมไพล์ จึงตรวจพบข้อผิดพลาดได้ตั้งแต่เนิ่น ๆ
@* app/views/welcome.scala.html *@
@(userName: String)
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome, @userName!</h1>
<p>This page was generated by a Play template.</p>
</body>
</html>เริ่มแอป Play ของคุณ
เมื่อเตรียมโครงการและกำหนดเส้นทางกับตัวควบคุมบางส่วนแล้ว คุณสามารถเรียกใช้แอปพลิเคชันด้วย SBT
ไปยังไดเรกทอรีรากของโครงการในเทอร์มินัล แล้วเรียกใช้:
sbt runโดยทั่วไปแอปพลิเคชันจะเริ่มทำงานที่ http://localhost:9000
แบบทดสอบองค์ประกอบของ Play
มาทดสอบความเข้าใจพื้นฐานเกี่ยวกับ Play Framework ของคุณกัน
ทบทวน: พื้นฐานของ Play
คุณได้เริ่มต้นก้าวแรกกับ Play Framework แล้ว! เราได้ครอบคลุมหัวข้อต่อไปนี้:
- Play คืออะไรและมีลักษณะรีแอกทีฟอย่างไร
- วิธีตั้งค่าโครงการใหม่ด้วย SBT
- ไดเรกทอรีหลักของโครงการ
- บทบาทของ
conf/routesในการจับคู่ URL - วิธีสร้างตัวควบคุมและฟังก์ชันการดำเนินการ
- การใช้แม่แบบ Twirl สำหรับมุมมองแบบไดนามิก
- การเรียกใช้แอปพลิเคชัน Play
ถัดไป คุณจะได้เรียนรู้การสร้าง RESTful API ด้วย Play!
คำถามที่พบบ่อย
บทเรียน “พื้นฐาน Play Framework” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน Play Framework” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Scala for Backend Engineering & Functional Programming ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Scala for Backend Engineering & Functional Programming มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Play Framework”
เริ่มต้นใช้งาน Play ทำความเข้าใจสถาปัตยกรรม และตั้งค่าเว็บแอปพลิเคชันแรกของคุณ คุณปฏิบัติ Scala for Backend Engineering & Functional Programming ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Scala for Backend Engineering & Functional Programming หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Scala for Backend Engineering & Functional Programming บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “พื้นฐาน Play Framework” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Scala for Backend Engineering & Functional Programming นี้ได้ไหม
ได้ บทเรียน Scala for Backend Engineering & Functional Programming ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน Play Framework
- การสร้าง RESTful API ด้วย Play
- การเชื่อมต่อฐานข้อมูลด้วย Slick/Doobie