background

สร้าง Helpers เองใน Laravel

1 week ago ◦ 45 Views

สร้าง Helpers เองใน Laravel

สร้าง Helpers เองใน Laravel

อย่างที่รู้กันว่า Laravel มี helpers เริ่มต้นมาให้เราใช้กันอยู่แล้ว (ดูคู่มีได้ที่ https://laravel.com/docs/5.7/helpers)

แต่บางโปรเจคเราอาจต้องสร้าง helper ขึ้นมาเอง เพื่อใช้งานกับเฉพาะบางอย่างกับโปรเจคนั้นๆ โดยแนะนำให้สร้างไฟล์ .php ไว้ที่โฟลเดอร์ app เราอาจจะตั้งชื่อไฟล์ว่า app/helpers.php ก็ได้นะ

จากนั้นก็ตั้งค่าให้ Laravel โหลดไฟล์นี้ก่อนทำอย่างอื่น โดยการเปิดไฟล์ composer.json แล้วหาในส่วนของ autoload จะเห็นหน้าตาประมาณนี้

...
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
...

เราจะทำงานเพิ่มชื่อไฟล์ที่เราพึ่งสร้างเข้าไป

...
"autoload": {
    "files": [
        "app/helpers.php"
    ],
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
...

แล้วก็ dump composer ใหม่ด้วยครับ

composer dump-autoload

ตอนนี้ก็ถือว่าไฟล์ Helpers ได้ถูกต้อง autoload ไว้แล้ว เรามาก็ลองสร้าง function ไว้ที่ไฟล์ app/Helpers.php ของเรากัน

ตัวอย่างด้านบนเป็น function ไว้เช็คชื่อ Route ที่กำลังเปิดอยู่ เพื่อที่เราจะเอาไปใช้ใส่ class ของ css เวลาที่จะทำให้ลิงค์นั้นมัน active (ดูว่า URL ที่กำลังเปิดอยู่มีชื่อ Route ว่า ... จริงมั้ย? ถ้าใช่ให้ return คำว่า "active" ออกมา)

เอาไปใช้ที่ไฟล์ blade ได้เลย

นี่เป็นตัวอย่าง helper นึงนะครับ เราสามารถสร้าง helper เองกันได้เลยโดยเพิ่ม function ไว้ที่ไฟล์ app/helpers.php นั่นแหละ (เขียนเช็คสักหน่อยว่ามีฟังก์ชั่นนี้หรือยังด้วยนะ) 

ที่นี่เราก็มี helpers ของตัวเองสำหรับโปรเจคของเรากันแล้ว



#laravel #helpers

View count: 45
  • avatar
  • Save Pongsiri ศิลปินด้านพัฒนาซอฟต์แวร์ มีเป้าหมายคือพัฒนาตัวเองให้ยืดหยุ่นที่สุด ชอบความเรียบง่าย,ดนตรี,กีฬา และแมว