บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ Laravel

[Laravel Mix] แยก webpack.mix.js เป็นหลายไฟล์

รูปภาพ
 ในบางโปรเจ็กต์เราอาจจะต้องแยก site ภายในโปรเจ็กต์เดียวกันเป็นหลาย ๆ site เช่น หน้าบ้านให้ user ใช้ site นึง และสำหรับ admin ใช้อีก site นึงในโปรเจ็กต์เดียวกัน อาจะเกิดปัญหาว่าต้องเขียน webpack.mix.js หลายร้อยบรรทัดจนลายตา มันอาจจะดีกว่าถ้าสามารถแยกเป็น webpack.mix.front.js และ webpack.mix.admin.js ได้ เพื่อง่ายต่อการจัดการ ซึ่งในบทความนี้เราจะมาสอนวิธีแยกไฟล์กันครับ สิ่งที่ต้องเตรียม ต้องโหลด minimist  มาใช้สำหรับจัดการ argument ที่เราจะส่งผ่านเข้าไปทาง command line ลงมือทำกันเลย สร้างไฟล์ขึ้นมาตาม site ที่เราต้องการ ในตัวอย่างนี้จะขอแบ่งเป็น admin กับ front 2 ไฟล์ รวมถึงต้องมีไฟล์หลักคือ webpack.mix.js 1 ไฟล์ตามนี้นะครับ ไฟล์ webpack.mix.js เนื้อหามีดังนี้ const { env } = require('minimist')(process.argv.slice(2));//รับ aurgument หลัง -- มา ซึ่งรับแต่ชื่อ env if (env && env.site) { require(`${__dirname}/webpack.mix.${env.site}.js`); } โค้ดตามนี้จะรับค่า env.site มาจาก command line เวลาเราสั่ง yarn prod หรือ yarn dev แล้วตามด้วย --env.site={ชื่อ site ที่

[Laravel] วิธีทำ Helper function ไว้ใช้เอง

รูปภาพ
 ในบทความนี้ผมจะถือว่าทุกคนมีความรู้พื้นฐานเกี่ยวกับ Laravel Framework มาแล้วระดับนึงในเรื่องของโครงสร้างไฟล์ แต่อย่างไรก็ตาม หากสงสัยก็คอมเม้นท์ถามไว้ได้ครับ มาเริ่มกันเลย ก่อนอื่นผมจะสร้าง folder ชื่อ Helpers ไว้ภายใต้ folder app ของ framework เพื่อง่ายจ่อการจำแนกไฟล์ จากนั้นสร้างไฟล์ขึ้นมา ตั้งชื่อตามหน้าที่ของ function ด้านในไฟล์นั้น ๆ ในตัวอย่างนี้ผมจะสร้างไฟล์ชื่อว่า NumberHelper.php ไว้จัดการกับตัวเลขต่างๆ ต่อมาผมจะสร้าง function ชื่อว่า numberInRange ไว้ตรวจเช็คว่าตัวเลขที่ใส่เข้ามามีค่าระหว่าง(between)อีก 2 ตัวเลขหรือไม่ โดยมีเนื้อหาของ function ดังนี้ if (! function_exists ( 'numberInRange' )) {      function numberInRange ( $val , $min , $max ) {          return ( $val >= $min && $val <= $max );     } } function_exists มีไว้เพื่อป้องกันการทับซ้อน function ที่มีอยู่แล้วในโปรเจ็กต์ของเรา หากไม่มี function จึงค่อยประกาศ function ถัดมาให้เปิดไฟล์ที่ชื่อว่า composer.json ซึ่งอยู่ที่ root ของโปรเจ็กต์ ในไฟล์ เลื่อนลงจนถึงส่วนของ autoload เพิ่มโค้ดส่วนนี