Tag Archive vs

Byphunsanit

Laravel 5 VS Yii 2 เลือกตัวไหนดี

ช่วงนี้เริ่มโปรเจคใหม่ ด้วยความที่ pm อยากจะให้ใช้ framework ตัวใหม่แทน yii2 เลยเลือกตัวยอดนิยมอีกตัวมาคือ laravel 5 ซึ่งถ้าดูใน trends ที่นิยมๆกันคือ CodeIgniter 3, joomla 3, Laravel 5, wordpress 4, Yii 2 เจ้าลั๊ลลาเวล นี่มาแรงจริงๆ

เพราะว่าคุ้นกับเจ้า yii 2 ที่สุดเลยจะเปรียบเทียบเอาง่ายๆ

  • การติดตั้ง yii2 สามารถใช้ composer ได้ และถ้าไม่มีเน็ตก็โหลดที่เป็น zip ไฟล์มาใช้ได้ แต่ laravel 5 ออกแบบให้ใช้ composer เท่านั้น
  • การใช้ command ทั้งคู่ต้องใช้ command ในการทำสิ่งต่างๆ ตั้งแต่การติดตั้งแต่ laravel 5 จะใช้เยอะกว่ามาก อย่างการ update route cache
  • การ config ตัว Yii2 จะมีความซับซ้อนยิ่งเป็น advance template จะมีการ overwrite ตามลำดับคือ common\config > site\config แล้วยังมีแยก -local สำหรับ config ที่ไม่ต้องการให้ git สนใจ เช่น connection database ในเครื่อง ไม่ต้องการให้ upload เข้าไปใน production แต่คนที่มาจับใหม่ๆ จะงงกับมันมาก ส่วน Laravel 5 ตัว config จะกระจายอยู่หลายที่ ถึงจะมีโพลเดอร์ \config แต่ตัว route ดันอยู่ใน \app\Http\routes.php แต่ config ที่เป็น local อยู่ใน .env ใช้ครั้งแรกก็งงว่าทำไม่ config แล้วมันใช้ไม่ได้
  • ด้าน structure folder ตัว Yii2 จะแยก backend / frontens / common / model / controllers / view แน่นอน เพราะว่าจะเอาไปสร้าง route ส่วน laravel 5 จะบังคับบางส่วนแต่ส่วนใหญ่จะเป็นอิสระตามแต่ท่านๆ จะวางโครงสร้างเอาเอง ขนาด model ก็ไม่บังคับว่าจะไว้ที่ไหน แค่มีตัวอย่าง \app\User.php ไว้ตัวเดียวเท่านั้น
  • ขนาดติดตั้ง Yii2 จะมีแทบทุกอย่างติดมาสำหรับงานเว็บทั่วๆไป ถ้าเอามาทำ api อาจจะต้องเอาบางอย่างที่เกินจำเป็นออก แต่ laravel 5 แทบไม่มีอะไรเลยแม่แต่ login, css, framework, grid list, form generator ต้องมาลงเองผ่านcomposer และ command
  • การลง component ต่างก็แนะนำให้ใช้ composer ทั้งคู่ แต่ การ configure ตัว laravel 5 ส่วนใหญ่จะต้องใช้ command คู่กันไปด้วย และต้องแก้หลายจุดมากกว่า YII ที่มักแค่เพิ่มรายการใน config ในไฟล์ใดไฟล์หนึ่งเท่านั้น
  • การสร้างไฟล์ใหม่ Yii จะมี Gii ให้ถ้าสร้างตารางเสร็จเรียบร้อยแล้ว มันจะสร้างให้ครบทั้ง controller, model, view ส่วน laravel 5 จะต่างกันออกไป เหมือนจะให้สร้างโครงสร้างในตัวมันเองแล้ว command สร้างตารางใน database การสร้าง model มันแทบจะสร้างแค่ชื่อ class ให้เท่านั้น
  • ตัว model ตัว laravel 5 ทำออกมาได้ง่ายมาก เพราะว่าไม่ต้องใส่ field / search condition อะไรเลย ใส่แค่ชื่อตารางมันก็ใช้ insert, delete, update ได้แล้ว (แต่อย่าลืมว่า gii ของ yii สร้างพวกนี้ให้แค่คลิก)
  • ด้านคู่มือมีทั้งคู่ แต่ yii2 ได้เปรียบตรงที่ถ้าดูรายละเอียดถึงระดับ class ทำไว้ละเอียดมาก ไม่ใช้แค่ชื่อ class กับอาร์กิวเมนต์ และจะได้อะไรออกมา แต่หลายๆจุดมีตัวอย่างให้ดูด้วย และเพราะให้มาแบบจัดเต็ม ทำให้มีเยอะจนบางครั้งก็สับสนว่าจะใช้ตัวไหนดี อย่าง grid ก็มีแบบของมันเอง กับแบบ bootstrap การสร้างฟอร์มก็มีให้เลือก สร้างจาก database, array ให้เลือก เป็นทั้งข้อดีและข้อเสีย
  • theme อันนี้ laravel 5 ดีกว่ามากต้องยกให้ blae ในด้านการ reused ส่วนต่างๆ ที่จับ mixed ได้ง่ายๆ กว่ามาก

สรุป ง่ายๆละกัน Yii 2 เหมาะกับงานที่ต้องการไปตามกรอบที่มันมีไว้แล้วจริงๆ เหมาะกับงานทั่วๆไป พวก backend ระบบต่างๆ ส่วน laravel 5 มันเหมาะกับเริ่มงานที่ต้องการปรับแต่งเอง มีเวลาที่จะปรับให้เหมาะกับงานที่ทำ มี tools หรือ library ที่ใช้อยู่เดิมเอาเข้ามาใช้