0Pricing
Scala for Backend Engineering & Functional Programming · บทเรียน

พื้นฐาน 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.conf
  • public/: ทรัพยากรสแตติก (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน Play Framework
  2. การสร้าง RESTful API ด้วย Play
  3. การเชื่อมต่อฐานข้อมูลด้วย Slick/Doobie
← กลับไปที่ Scala for Backend Engineering & Functional Programming