ติดตั้ง Yii Framework 2 ด้วย Composer

โดย สุรกิจ ชูเดช 02 ก.ย. 2016 10:58:10
1,214 ครั้ง

        ตัว Yii Framework 2 นั้นมี Tempalte (ไม่ใช่ Web template นะ มันหมายถึงโครงสร้างของไฟล์ และสคริปต์) อยู่ 2 แบบด้วยกันคือ Basic และ Advanced ซึ่งทั้ง 2 Template การเขียนคำสั่งเหมือนกันทุกอย่าง จะต่างกันแค่โครงสร้างของโฟลเดอร์ และไฟล์ และที่แตกต่างที่ชัดเจนคือ Advanced จะมีเว็บอยู่ 2 ที่คือ Frontend กับ Backend ส่วน Basic จะมีเว็บที่เดียว ซึ่งขึ้นอยู่กับผู้ที่จะพัฒนาเว็บเองว่าแบบใหนที่ตรงวัตถุประสงค์ของโปรเจ็คมากกว่ากันเช่น ทำเว็บแบบเสนอ content เฉยๆ ก็ควรเลือกแบบ Basic แต่ถ้าเป็นโปรเจ็คที่มีความซับซ้อน การจำกัดการเข้าถึงของ User หลายระดับ แบบนี้ก็ควรจะใช้ Advanced มากกว่า จากข้อแตกต่างข้างต้นจึงทำให้คำสั่งที่ไม่เหมือนกันระหว่าง Basic กับ Advanced ก็มีแค่การอ้างอิงที่อยู่ของ Class หรือไฟล์ในโฟลเดอร์เท่านั้นเอง คำสั่งที่เหลือก็เหมือนกัน

        เอาหละในเมื่อเข้าใจข้อแตกต่างของ Template หระว่าง Basic กับ Advanced แล้ว ในบทความชุดนี้จะขอเลือกใช้แบบ Advanced แล้วกัน และจะขอนำเข้าไปสู่การติดตั้งด้วย Composer ดังนี้ (จริงๆ แล้วมีไกด์สำหรับการติดตั้งอยู่แล้วในเว็บไซต์ของ Yii Advanced Template ดูได้จากที่นี่ << Click >> )

  1. สำหรับเครื่องที่ยังไม่เคยติดตั้ง Plugin fxp หรือเพิ่งติดตั้ง Composer ใหม่จำเป็นต้องติดตั้ง Plugin ตัวนี้ก่อน 1 ครั้ง ผ่านทาง Command หรือ Terminal หากเคยติดตั้งแล้วก็ข้ามไปข้อ 2 ได้เลย
    > composer global require "fxp/composer-asset-plugin:^1.2.0"

     

  2. ใช้ Command หรือ Terminal เข้าไปที่ Web Root ของ Web Server ด้วยคำสั้ง cd แล้วใช้คำสั่งสร้างโปรเจ็คได้เลย

    > cd c:\xampp\htdocs
    > composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application
    สังเกตุคำว่า yii-application ที่เป็นสีแดงนั่นคือชื่อโฟลเดอร์โปรเจ็คของเรา ซึ่งสามารถเปลี่ยนให้เป็นชื่อที่เราต้องการได้ ขั้นตอนนี้เครื่องของเราจำเป็นที่ต้องเชื่อมต่อกับ Internet (หากไม่มีเน็ตก็ติดตั้งไม่ได้น๊ะ) และเมื่อสั่งรันคำสั้งไปแล้ว Composer จะทำการดาวน์โหลด Yii Advanced Template ลงในโปรเจ็คของเรา ขั้นตอนนี้อาจใช้เวลานานหน่อยอาจจะใช้เวลานาน 3-5 นาที หรือมากกว่านั้น ให้รออย่างเดียวจนกว่ามันจะเสร็จ (สังเกตุเมื่อเสร็จเราจะมีเคอร์เซอร์กระพริบสามารถพิมพ์คำสั่งลงใน Command หรือ Terminal ได้ แต่ไม่ต้องพิมพ์อะไรน๊ะ) เมื่อติดตั้งเสร็จแล้วอย่าเพิ่งปิด Command หรือ Terminal เราต้องใช้คำสั่งอื่นๆ เพื่อตั้งค่าต่างๆ ของโปรเจ็คให้เสร็จก่อน

     

  3. หากเครื่องของเรายังไม่เคยติดตั้ง Yii 2 มาก่อนระหว่างการโหลดไฟล์จะขึ้นให้กรอก Git Token ให้เราไปสร้าง Token จากเว็บไซต์ https://github.com/ โดยมีขั้นตอนดังนี้
    1. คลิกที่รูปโปรไฟล์ (อยู่มุมขวา-บน) >> Settings
    2. คลิ๊กเมนู Personal access tokens (อยู่ทางซ้าย)
    3. คลิกปุ่ม Generate new token
    4. ตั้งชื่อ token ตามต้องการ (อะไรก็ได้) และไม่จำเป็นต้องคลิ๊กเช็คออพชั่นไดๆ
    5. เลื่อนลงมาคลิ๊กปุ่ม Generate token (ปุ่มสีเขียวด้านล่าง)
    6. จะได้ชุดตัวอักษรมา 1 ชุด ให้ Copy ตัวอักษรชุดนี้แล้วไป Past ใน Command หรือ Terminal แล้วกดปุม Enter ตอน Past ใน Command / Terminal จะไม่แสดงข้อความที่ Past ไม่ต้องตกใจกด Enter ไปได้เลย หากกด Enter ไปแล้วยังขึ้นให้กรอก Token อีก แสดงว่าเราอาจลากคลุมข้อความก่อน Copy ไม่หมดหรือเกินมา ให้คลุมให้ครบแล้ว Copy - Past ใหม่

       

  4. ให้พิมพ์คำสั้ง cd เข้าสู่โปรเจ็คของเรา แล้วพิมพ์คำสั่งการตั้งค่าโหมด Devlopment หรือ Production
    > cd yii-application
    > php init #สำหรับ Windows, และ php ./init สำหรับ Mac OS X / Linux
    หลังจากนั้นจะขึ้นข้อความถามให้เลือกโหมด 0 = Devlopment หรือ 1 = Production ให้ตอบ 0 เนื่องจากเรายังอยู่ในขั้นตอนการพัฒนา

    Yii Application Initialization Tool v1.0

    Which environment do you want the application to be initialized in?

      [0] Development
      [1] Production

      Your choice [0-1, or "q" to quit] 0 #<---- ตอบ 0

      Initialize the application under 'Development' environment? [yes|no] yes #<---- ตอบ yes หรือ y

    สงสัยละสิ Development กับ Production ต่างกันยังไง ความหมายมันก็บอกอยู่แล้วคือ Development คืออยู่ในระหว่างหารพัฒนา ดังนั้นเวลาสคริปต์เกิด Error หรือ Warning มันก็จะแสดงข้อความ Error / Warning ออกมาให้กับเราได้ทราบ ส่วน Production คือนำไปใช้งานจริงแล้วจึงไม่ควรจะแสดง Error / Warning ให้ User เห็นอาจจะเป็นอันตรายกับโปรแกรมของเราได้เพราะข้อความ Error / Warning จะแสดง Full path หรือ โครงสร้าง ชื่อตาราง ฟิลด์ของฐานข้อมูลเลยทีเดียว หากผู้ไม่ประสงค์ดีเห็นเข้าโปรแกรมของเราก็อาจจะนำไปสู่การถูกโจมตีได้ สรุป 2 โหมดนี้คือ Development โชว์ Error / Warning ส่วน Production ไม่โชว์ จอบอ.

     

        ถึงตอนนี้การติดตั้งก็เป็นอันเสร็จเรียบร้อยแล้ว เราลองไปรันหน้าเว็บกันดูหน่อย อย่างที่ได้กล่าวไว้ข้างต้นว่า Advanced template มีเว็บอยู่ 2 ที่ด้วยกันคือ Frontend และ Backend เราลองมารันทีละเว็บกัน

  1. Frontend ที่ http://localhost/yii-application/frontend/web/ จะได้หน้าจอดังภาพ

     
  2. Backend ที่ http://localhost/yii-application/backend/web/

        ถ้าได้หน้าจอตามนี้แสดงว่าการติดตั้งของเราเสร็จสมบูรณ์พร้อมที่จะให้เราเขียนโปรแกรมได้เลย wink

โพสต์เมื่อ: 02 ก.ย. 2016 10:58:10
ปรับปรุงเมื่อ: 10 ม.ค. 2017 08:34:51
ปรับปรุงโดย: สุรกิจ ชูเดช