ผู้ให้บริการและคอนเทนเนอร์บริการทำงานอย่างไรโดยใช้ laravel

เผยแพร่แล้ว: 2022-09-16

Laravel บางครั้งอาจจัดการได้ยากมาก แม้แต่นักพัฒนาที่มีประสบการณ์ เนื่องจากฟังก์ชันหลักเข้าใจยาก แต่จริงๆ แล้ว การพัฒนาเว็บนั้นน่าสนใจ

หนึ่งในฟังก์ชันการทำงานคือผู้ให้บริการ ซึ่งฉันจะให้ภาพรวมโดยละเอียดในบล็อกนี้ ฉันจะอธิบายด้วยว่าคอนเทนเนอร์บริการทำงานอย่างไรใน laravel ในบล็อกนี้

สิ่งเหล่านี้ง่ายกว่าที่คุณคิด พูดไปแล้วก็เข้าเรื่องเลย

ผู้ให้บริการใน laravel คืออะไร?

ผู้ให้บริการในแอปพลิเคชัน Laravel ทำหน้าที่เป็นจุดหลักในการบูตแอปพลิเคชัน ด้วยเหตุนี้ ผู้ให้บริการจึงถูกใช้เพื่อฉีดบริการพื้นฐานของ laravel ลงในคอนเทนเนอร์บริการ เช่นเดียวกับบริการ คลาส และการพึ่งพาของแอปพลิเคชันของเราลงในคอนเทนเนอร์บริการ

คำกระตุ้นการตัดสินใจใหม่

ผู้ให้บริการสำหรับตัวอย่างนี้อาจพบได้ใน config/app.php เป็นอาร์เรย์ชื่อ "ผู้ให้บริการ" อ้างถึงภาพด้านล่าง:

ผู้ให้บริการใน laravel 1 . คืออะไร

สมมติว่าคุณต้องการใช้ผู้ให้บริการบุคคลที่สาม จากนั้นคุณต้องใช้ในการกำหนดค่าอาร์เรย์ผู้ให้บริการ

คุณสามารถดูผู้ให้บริการบางรายที่เรียกใช้แอปพลิเคชันทั้งหมดได้อยู่แล้ว เช่น Auth ซึ่งจำเป็นสำหรับการตรวจสอบสิทธิ์สำหรับแอปพลิเคชัน

จะสร้างผู้ให้บริการใน laravel ได้อย่างไร?

หากต้องการใช้ผู้ให้บริการ คุณต้องสร้างผู้ให้บริการก่อน ด้วยเหตุนี้ เราจะตั้งผู้ให้บริการทันที คุณสามารถใช้คำสั่งด้านล่างเพื่อสร้างผู้ให้บริการที่คุณต้องการ

php ช่างฝีมือ make:provider MyServiceProvider

เมื่อคุณเรียกใช้คำสั่ง ผู้ให้บริการจะถูกสร้างขึ้นในแอปพลิเคชันของคุณ ซึ่งคุณสามารถใช้ได้

วิธีสร้างผู้ให้บริการใน laravel 1

หลังจากนั้น เปิดแอปของคุณและไปที่โฟลเดอร์ผู้ให้บริการ ซึ่งคุณจะพบผู้ให้บริการของคุณ

วิธีสร้างผู้ให้บริการใน laravel 2

ที่นี่คุณจะเห็นสองวิธี register() และ boot()

register() วิธีการ

สิ่งสำคัญคือต้องรู้ว่าวิธีการ register() ช่วยให้เรากำหนดการเชื่อมโยงไปยังคอนเทนเนอร์บริการของเราได้ ตัวอย่างเช่น ดูรหัสด้านล่าง:

วิธีการลงทะเบียน

$this->app เป็นตัวแปรส่วนกลางใน laravel ซึ่งสามารถเข้าถึงคลาส singleton ผ่านแอพได้

ซิงเกิลตันเป็นคุณลักษณะ เมื่อคุณใช้คุณลักษณะนี้ แสดงว่าคุณกำลังแจ้งให้แอปพลิเคชันทราบว่าคลาสใดก็ตามที่ส่งเป็นพารามิเตอร์ในแอปควรมีเพียงหนึ่งรายการซ้ำกัน (อินสแตนซ์) ตลอดทั้งแอปพลิเคชัน ซึ่งหมายความว่า MyClass จะได้รับการแก้ไขเพียงครั้งเดียวและจะมีเพียงอินสแตนซ์เดียว ซึ่งสามารถเข้าถึงได้โดยใช้ตัวแปร my_class

boot() วิธีการ

วิธีการ boot() ให้คุณเข้าถึงบริการทั้งหมดที่ลงทะเบียนไว้ก่อนหน้านี้โดยใช้วิธีการลงทะเบียน คุณจึงรวมบริการทั้งหมดไว้ในแอปพลิเคชันของคุณได้โดยใช้วิธีนี้

วิธีการบูต

วิธีการบูต-1

จะลงทะเบียนผู้ให้บริการได้อย่างไร?

เนื่องจากคุณได้สร้างผู้ให้บริการแล้ว คุณจะต้องลงทะเบียนในไฟล์การกำหนดค่าเพื่อดำเนินการให้เสร็จสิ้น คุณต้องลงทะเบียนที่นี่ในลักษณะที่แสดงในภาพด้านล่าง:

วิธีการลงทะเบียนผู้ให้บริการ

ผู้ให้บริการทั้งหมดจะโหลดก่อนทุกครั้งที่เรียกใช้แอปพลิเคชัน ผู้ให้บริการเป็นศูนย์กลางหลักสำหรับแอปพลิเคชัน Laravel และพร้อมให้ความช่วยเหลือคุณในการเรียกใช้แอปพลิเคชันที่สมบูรณ์ ดังที่ได้กล่าวไว้ก่อนหน้านี้ในบล็อกนี้

คอนเทนเนอร์บริการใน laravel คืออะไร

Service Container เป็นกลไกที่ทรงพลังที่ช่วยให้เราสามารถจัดเก็บการเชื่อมโยงทั้งหมดที่จำเป็นต่อการใช้งานแอปพลิเคชัน Laravel บนเซิร์ฟเวอร์เครื่องเดียว

6 หลักการพัฒนาเว็บแอปพลิเคชั่นสมัยใหม่ ปี 2565

ทุกอย่างในแอปพลิเคชันอาจถูกผูกไว้ด้วยกันด้วยความช่วยเหลือของคอนเทนเนอร์บริการ

จะใช้บริการคอนเทนเนอร์ใน laravel ได้อย่างไร?

พิจารณาสถานการณ์สมมติต่อไปนี้: เรามีคลาสชื่อ MathService ที่รับผิดชอบการดำเนินการพื้นฐานบางอย่าง เช่น การบวก การคูณ และอื่นๆ รหัสสำหรับคลาสนี้มีให้ด้านล่าง

วิธีใช้บริการคอนเทนเนอร์ใน laravel

ดังที่คุณเห็นด้านบน มีสองวิธีในการคำนวณผลรวมของอาร์เรย์ตัวเลขโดยใช้ฟังก์ชันผลรวมอาร์เรย์และการคูณตัวเลขทั้งหมดที่มีให้เป็นอาร์เรย์โดยใช้ฟังก์ชันผลิตภัณฑ์อาร์เรย์

ฟังก์ชันผลรวมอาร์เรย์จะคำนวณผลรวมของอาร์เรย์ตัวเลขโดยใช้ฟังก์ชันผลรวมอาร์เรย์ ในขณะที่ฟังก์ชันผลิตภัณฑ์อาร์เรย์จะคูณตัวเลขทั้งหมดที่ระบุเป็นอาร์เรย์

ในการใช้ผู้ให้บริการ เราต้องผูกบริการกับคอนเทนเนอร์บริการก่อน

วิธีใช้คอนเทนเนอร์บริการใน laravel-1

อย่างไรก็ตาม การทำเช่นนี้ เรากำลังแนะนำให้ Laravel เก็บคอนเทนเนอร์ MathService ไว้ในคอนเทนเนอร์ที่มีชื่อ MathService และส่งคืนเมื่อใดก็ตามที่เราต้องการอินสแตนซ์ของคลาส นี่เป็นการรวมคลาสแบบครั้งเดียว และอาจใช้เพื่อรับอินสแตนซ์จำนวนเท่าใดก็ได้จากโปรแกรมของเรา

วิธีใช้บริการคอนเทนเนอร์ใน laravel-2 ตามที่ระบุไว้ก่อนหน้านี้ คอนเทนเนอร์บริการและผู้ให้บริการเป็นส่วนประกอบที่สำคัญของทุกแอปพลิเคชัน Laravel ตามที่ระบุไว้ก่อนหน้านี้ เราอาจออกแบบผู้ให้บริการเฉพาะของเราเอง หรือเราสามารถรวมผู้ให้บริการบุคคลที่สามเข้ากับแอปพลิเคชันของเรา

ตัวอย่างเช่น หากคุณต้องการใช้โซเชียลเน็ตเวิร์กใน Laravel คุณสามารถคัดลอกและวางลงในไฟล์ผู้ให้บริการแอปและใช้งานได้ทุกที่ในแอปพลิเคชันของคุณ

สรุปว่า

เมื่อกำหนดค่าแอปพลิเคชันของคุณ ผู้ให้บริการจะถูกใช้ นอกจากการเชื่อมโยงคอนเทนเนอร์บริการแล้ว องค์ประกอบหลักอื่นๆ เช่น เส้นทาง มิดเดิลแวร์ และผู้ฟังเหตุการณ์ยังได้รับการลงทะเบียนในส่วนนี้ของไฟล์การกำหนดค่าด้วย

ผู้ให้บริการจะดำเนินการก่อนที่จะดำเนินการตามคำขอ ตรวจสอบให้แน่ใจว่าทุกสิ่งที่คุณต้องการอยู่ในสถานที่และตั้งค่าก่อนที่คำขอจะถูกจัดการโดยระบบ การดำเนินการของผู้ให้บริการบางรายเกิดขึ้นเป็นประจำ ในขณะที่ผู้ให้บริการรายอื่นจะดำเนินการเมื่อจำเป็นเท่านั้น ("ผู้ให้บริการล่าช้า")

เมื่อคุณใช้คอนเทนเนอร์บริการ คุณสามารถใช้สำหรับการฉีดการพึ่งพา (เช่น การฉีดพารามิเตอร์ในคลาสตัวควบคุมของคุณ) เช่นเดียวกับคลาสการรวมและการแก้ปัญหา (เช่น คลาสใดที่จะสร้างอินสแตนซ์สำหรับสัญญาที่กำหนด)

การพัฒนาเว็บอาจเป็นกระบวนการที่ยาก นั่นคือเหตุผลที่ webdew มีทีมนักพัฒนาเว็บที่มีทักษะเพื่อช่วยในการสร้างเว็บไซต์และแอปพลิเคชัน และทำให้สิ่งต่างๆ ง่ายขึ้นสำหรับคุณ

ต้องการผู้เชี่ยวชาญด้านการออกแบบเว็บและการพัฒนาเว็บหรือไม่? ติดต่อกับพวกเรา!

บรรณาธิการ: อมฤตา