Yaravel เป็นเฟรมเวิร์ก PHP MVC ขนาดเล็กแต่แข็งแกร่ง ซึ่งสามารถใช้ได้ทั้งการเรนเดอร์ HTML และเป็น API โดยนำเสนอระบบคำขอและการกำหนดเส้นทาง เอ็นจิ้นการดูที่รองรับสไตล์ชีตและจาวาสคริปต์ และ ORM ที่เรียกว่า Helloquent สำหรับการสื่อสารฐานข้อมูล Yaravel ได้รับการออกแบบมาให้รวดเร็ว มีประสิทธิภาพ และยืดหยุ่น ทำให้เป็นตัวเลือกที่เหมาะสำหรับนักพัฒนาที่ต้องการสร้างเว็บแอปพลิเคชันด้วย PHP
ทวีตเตอร์เป็นแอปที่คล้ายกับทวิตเตอร์ที่สร้างขึ้นโดยใช้เวอร์ชันแรกของเฟรมเวิร์กนี้ ซึ่งอนุญาตให้ผู้ใช้โพสต์ข้อความสั้น ๆ ที่เรียกว่า "ทวีต" และโต้ตอบกับผู้อื่นผ่านการถูกใจและตรวจสอบทวีตของพวกเขา แอพนี้มีฟีดทวีตล่าสุดจากผู้ใช้แบบเรียลไทม์
(ลองดูสดหรือ repo ของแอพนี้)
เส้นทางการสมัครของคุณสามารถลงทะเบียนได้ในโฟลเดอร์ "/routes" เส้นทาง API ควรอยู่ในไฟล์ "api.php" และหน้าเว็บในไฟล์ "web.php"
หากต้องการลงทะเบียนเส้นทางเว็บ ให้ใช้ฟังก์ชัน addRoute บนออบเจ็กต์เราเตอร์ ฟังก์ชันรับพารามิเตอร์ต่อไปนี้:
// $router->addRoute(path, controller path, action);
$ router -> addRoute ( " / " , DefaultController::class, " viewDefault " );ดูตัวอย่างใน "/routes/web.php" สำหรับข้อมูลเพิ่มเติม
หากต้องการลงทะเบียนเส้นทาง API ให้ใช้ฟังก์ชัน api บนวัตถุเราเตอร์ ฟังก์ชันรับพารามิเตอร์ต่อไปนี้:
// $router->addRoute(path, controller path, method);
$ router -> api ( " / " , DefaultController::class);
$ router -> api ( " / " , DefaultController::class, " post " );โปรดดูตัวอย่างใน "/routes/api.php" สำหรับข้อมูลเพิ่มเติม
วัตถุ คำขอ $this->request รวมอยู่ในตัวควบคุมและเป็นอินสแตนซ์ของคลาส HttpRequest มันเก็บข้อมูลทั้งหมดจากการร้องขอ วัตถุมีคุณสมบัติหลายประการ ได้แก่ :
คลาส HttpResponse ใช้เพื่อตอบสนองต่อการเรียก API มีฟังก์ชันคงที่ที่เรียกว่าการตอบสนองซึ่งมีพารามิเตอร์สองตัว:
MVC (Model-View-Controller) คือรูปแบบการออกแบบซอฟต์แวร์ที่แยกแอปพลิเคชันออกเป็นสามองค์ประกอบหลัก
ส่วนประกอบโมเดลในเฟรมเวิร์กมีหน้าที่รับผิดชอบในการจัดการข้อมูลและตรรกะทางธุรกิจ และสำหรับการสื่อสารกับฐานข้อมูล ซึ่งทำได้โดยใช้ Helloquent ซึ่งเป็นเครื่องมือ ORM ที่สร้างขึ้นสำหรับเฟรมเวิร์กโดยเฉพาะ สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารประกอบของ Helloquent ในลิงก์นี้ https://github.com/you97ssef/Helloquent
โมเดลควรถูกเก็บไว้ในไดเร็กทอรี /app/Models และควรขยายคลาส Model (ดังที่แสดงโดยคลาส Person ในโค้ด)
องค์ประกอบมุมมองประกอบด้วยฟังก์ชันที่ส่งคืน HTML ผสมกับข้อมูลที่จะแสดงแก่ผู้ใช้ ข้อมูลที่ใช้สามารถส่งผ่านจากคอนโทรลเลอร์และสามารถเข้าถึงได้ผ่าน $this->data (อาร์เรย์) มุมมองควรเก็บไว้ในไดเร็กทอรี /app/views และควรขยายคลาส View (ดังที่แสดงโดยคลาส DefaultView หรือ ErrorView ในโค้ด)
ข้อความที่แก้ไข: ส่วนประกอบตัวควบคุมจะจัดการอินพุตของผู้ใช้และอัปเดตโมเดลและมุมมองตามนั้น คอนโทรลเลอร์ควรเก็บไว้ในไดเร็กทอรี /app/Controllers และควรขยายคลาส Controller มีคุณสมบัติ $this->request ที่มีข้อมูลจากคำขอที่เข้ามา ในการตอบกลับในฐานะหน้าเว็บ ควรกำหนด View และควรเรียกใช้ฟังก์ชัน render ของ View นั้น เช่น $view->render("renderBody") ในการตอบสนองต่อการเรียก API ควรใช้ฟังก์ชัน respond จากคลาส HttpResponse เช่น HttpResponse::respond($data) ดู DefaultController สำหรับตัวอย่าง
แอปพลิเคชันเริ่มต้นด้วยไฟล์ index.php ประการแรก คำขอจะถูกสร้างขึ้น ตามด้วยการลงทะเบียน CSS และ JS ถัดไป การกำหนดค่าแอปและการกำหนดค่าฐานข้อมูลจะเริ่มต้นได้ จากนั้นจึงตั้งค่าเราเตอร์ สุดท้ายนี้ แอปจะดำเนินการโดยการเรียก $router->run(); (ดูไฟล์ index.php สำหรับข้อมูลเพิ่มเติม)
เฟรมเวิร์กนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ซึ่งเป็นใบอนุญาตโอเพ่นซอร์สที่อนุญาตซึ่งอนุญาตให้ใช้ ดัดแปลง และแจกจ่ายซอฟต์แวร์ ใบอนุญาต MIT ช่วยให้มีความยืดหยุ่นในระดับสูงในการใช้ซอฟต์แวร์และรวมเอาข้อจำกัดขั้นต่ำไว้ด้วย