วิธี passing argument or constant class laravel ผ่าน constructor แบบต่าง ๆ | how to by passing argument

ทำไมจึงต้องมีการผ่านค่า (passing value) ไปยัง class ต่าง ๆ ที่เรียกใช้งาน ถ้าใครที่เคยเรียน  oop มา เราคงคุ้น ๆเรื่องการห่อหุ้ม (encapsulation) การทำ data hidding ซึ่งนั้นการทำ data hidding อีกวิธีการหนึ่งที่เราจะเข้าถึง private  properties คือการ  passing ผ่าน __construct นั้นเอง ซึ่งวันนี้จะมานำเสนอวิธีการส่งข้อมูลไปยัง class ต่างๆ ที่มี __construct รับค่าตัวแปรไว้ หรือทำ typing hit class ไว้ดังตัวอย่างต่อไปนี้  


  1. เรียกใช้ผ่าน namespace class ตรง ๆ โดยใช้ function make ซึ่งเราสามารถเรียกใช้ App ของ laravel ได้สองแบบ คือผ่านทางคลาสหลักของ App หรืออีกทางคือผ่านทาง helper ได้ง่าย โดยวิธีนี่ไม่ต้องส่งค่าที่เป็น instant class ไปด้วยถึงแม้ว่าในตัว repository เองจะประกาศไว้ที่ __construct ก็ตามแต่ ข้อควรระวังคือ หากมี Argument ที่อยู่ใน __construct ควรจะส่งไปด้วย ถ้าไม่อย่างนั้นมันจะ error 
    • ผ่านทาง helper 

    • ผ่านทาง classs App
  2. สร้าง dependency injection ผ่านทาง service provider ของ laravel เราสามารถสร้าง service provider ขึ้นมาใหม่ได้ หรือสามารถใช้ที่มีอยู่แล้ว สิ่งที่จะได้คือ สามารถส่ง instant class  ที่ repository สร้างขึ้นมาในจังหวะ __construct ดังตัวอย่างต่อไปนี้
Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น