วิธีติดตั้งและใช้งาน CodeIgniter 4 เบื้องต้น

เขียนเมื่อ 4 ปีก่อน โดย Ninenik Narkdee
codeigniter 4 codeigniter

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ codeigniter 4 codeigniter

ดูแล้ว 9,711 ครั้ง


เนื้อหาต่อไปนี้ เราจะมาดูเกี่ยวกับการติดตั้ง
และใช้งาน CodeIgniter 4 ซึ่งเป็นเวอร์ชั่นอัพเดทล่าสุด
ของ CodeIgniter ทั้งนี้ทั้งนั้น เราเคยทำเนื้อหา
เกี่ยวกับการใช้งาน CodeIgniter 3 มาแล้ว ซึ่งยังสามารถใช้งาน
ได้เป็นอย่างดี หากสนใจสามารถศึกษาได้ที่ Tag บทความ
ในหัวข้อ CodeIgniter 3 ตามลิ้งค์ด้านล่าง
    บทความเกี่ยวกับ CodeIgniter 3
 
เนื้อหาของ CodeIgniter 3 โดยส่วนใหญ่ในบางเนื้อหา สามารถนำมาปรับประยุกต์
ใช้งานร่วมกับ CodeIgniter 4 ได้ 
 
 

ความต้องการระบบ สำหรับ CodeIgniter 4

    ระบบ Server ที่รองรับการใช้งาน CodeIgniter 4 จะประกอบด้วยเบื้องต้นดังนี้
    - เป็น PHP 7.2 ขึ้นไป
    - มีการติดตั้ง และ เปิดใช้งาน *intl*และ *mbstring* extension
    ดูเพิ่มเติม Server Requirements 
 
    ซึ่งในการแนะนำการใช้งาน เราจะใช้ร่วมกับการจำลอง Server ด้วย xampp แนวทางติดตั้งตามลิ้งค์ด้านล่าง
    ติดตั้ง xampp จำลอง server สำหรับนักพัฒนาเว็บด้วย php http://niik.in/660 
 
    นอกจากนั้น เราจะทำการสร้าง vitual host เพื่อจำลองการทำงานเสมือนจริง โดยในที่ใช้ชื่อโดเมนทดสอบว่า
https://www.mysslweb.com โดยใช้วิธีการสร้าง Virtual Host ตามลิ้งค์ด้านล่าง ที่หัวข้อ "การกำหนด Virtual Host"
    ตั้งค่า xampp ให้รองรับ SSL แบบ Self Signed Certificate http://niik.in/980 
 
    โดยไฟล์ของ CodeIgniter 4 จะอยู่ในโฟลเดอร์ C > xampp > htdocs > mysslweb 
    และการเรียกไปยังไฟล์ index.php ก็ควรจะชี้ไปที่ DocumentRoot "C:\xampp\htdocs\mysslweb" 
แต่เนื่องจากใน CodeIgniter 4 จะให้ความสำคัญเรื่องความปลอดภัยเป็นอันดับต้น จึงมีการกำหนดโฟลเดอร์
public และมีไฟล์ index.php หรือไฟล์ตั้งต้นอยู่ในโฟลเดอร์ดังกล่าว ดังนั้น ในการกำหนด Virtual Host เราจะเปลี่ยน
ค่าเล็กน้อย โดยเพิ่ม path ของโฟลเดอร์ public ต่อเข้าไป จะได้ในส่วนของไฟล์ 
    C > xampp > apache > conf > extra  > httpd-vhosts.conf
 
    ประมาณนี้
 
<VirtualHost *:80>
    ServerAdmin webmaster@mysslweb.com
    DocumentRoot "C:\xampp\htdocs\mysslweb\public"
    ServerName mysslweb.com
    ServerAlias www.mysslweb.com
	ErrorLog "logs/mysslweb.com-error.log"
    CustomLog "logs/mysslweb.com-access.log" common
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@mysslweb.com
    DocumentRoot "C:\xampp\htdocs\mysslweb\public"
    ServerName mysslweb.com
    ServerAlias www.mysslweb.com
	SSLEngine on
	 SSLCertificateFile "C:\xampp\apache\conf\ssl.crt\mysslweb.com.crt"
	 SSLCertificateKeyFile "C:\xampp\apache\conf\ssl.key\mysslweb.com.key"
	 <FilesMatch "\.(cgi|shtml|phtml|php)$">
	 SSLOptions +StdEnvVars
	 </FilesMatch>
	ErrorLog "logs/mysslweb.com-error.log"
    CustomLog "logs/mysslweb.com-access.log" common
</VirtualHost>
 
    นั่นคือเมื่อเราเรียกไปยังโดนเมน https://www.mysslweb.com ก็จะชี้ไปที่โฟลเดอร์  mysslweb\public นั่นเอง
    
    เมื่อเราเตรียมในส่วนของ server และ domain จำลองเรียบร้อยแล้ว ต่อไปก็เป็นส่วนของการติดตั้ง CodeIgniter 4
 
 

การติดตั้ง CodeIgniter 4

    สำหรับรูปแบบการติดตั้ง จะขอยกมา 2 รูปแบบคือ การติดตั้งแบบ กำหนดเองหรือ manual กับ การติดตั้งโดยใช้
ตัวจัดการ package หรือ Composer ข้อดีข้อเสีย ของทั้งสองวิธีก็แตกต่าง กันไป สามารถเลือกได้ตามต้องการ
ซึ่งการกำหนดเอง มีรูปแบบไม่ยุ่งยาก เพียงเข้าไปดาวน์โหลดไฟล์ CodeIgniter 4 มาจากนั้นทำการแตกไฟล์ ไปไว้ใน
โฟลเดอร์โปรเจ็ค เสร็จแล้วก็ทำการ รันใช้งานได้ทันที ข้อเสียเปรียบของวิธีนี้ ก็คือถ้ามีการอัพเดท เราจำเป็นต้องจัดการ
ส่วนต่างๆ ด้วยตัวเอง หลักๆ คือการ copy โฟลเดอร์ system ของเวอร์ชันใหม่มาแทนตัวเดิม และไล่เช็คการตั้งค่าในโฟลเดอร์
app/Config ตามการเปลี่ยนแปลงที่เกิดขึ้น 
    ส่วนการใช้งาน Composer ก็จะสะดวกด้วยการติดตั้งผ่าน คำสั่งง่ายๆ และหากมีการอัพเดทเวอร์ชั่น ก็สามารถใช้คำสั่งอัพเดท
ผ่าน command line ได้โดยง่าย แต่ก็ยังจำเป็นต้องไล่ตรวจสอบการเปลี่ยนแปลงในโฟลเดอร์ app/Config อยู่เหมือนกัน
 
    จากที่ลองทดสอบ การใช้งาน composer จะมีดาวน์โหลด package ต่างๆ ที่เกี่ยวข้องมาค่อนเยอะพอสมควร สำหรับการสร้าง
โปรเจ็คเริ่มต้น แต่เราก็เลือกที่จะใช้แบบกำหนด “–no-dev” เพื่อใช้เฉพาะ package ที่จำเป็นได้
    ในความเห็นส่วนตัว ถ้าเราต้องการจะจัดการหรือใช้งานโปรเจ็คไม่ใหญ่มาก และไม่ต้องการอัพเดทตามเวอร์ชั่นใหม่ บ่อยๆ การ
ติดตั้งแบบกำหนดเองก็ถือว่าเหมาะสม แต่ถ้าต้องการความรวดเร็ว และรองรับการอัพเดทเวอร์ชั่นใหม่ๆ การติดตั้งแบบ composer 
ก็ถือได้ว่าเป็นวิธีที่เหมาะสมเช่นกัน 
 
    จะแนะนำการติดตั้งทั้ง 2 วิธีเป็นแนวทาง ดังต่อไปนี้
 

    การติดตั้งและใช้งานแบบ Manual กำหนดเอง

    ให้เราไปทำการดาวน์โหลดเวอร์ชั่นล่าสุด หรือเวอร์ชั่นที่จะใช้งานได้ที่ 
 
 

 
 
    ทำการดาวน์โหลด และแตกไฟล์ไปยังโฟลเดอร์โปรเจ็คของเรา
 
 

 
 
    ทดสอบเรียกใช้งานผ่าน Domain ที่เราจำลองการใช้งาน หากไม่มีอะไรผิดพลาด จะได้ผลลัพธ์ดังรูป
 
 

 
 
    จะเห็นว่ามีขั้นตอนเริ่มตั้นไม่ยุ่งยาก 
 
 

    การติดตั้งผ่าน Composer 

    เพื่อลดการโหลด package มากเกินไปจะเพิ่ม option ในการติดตั้งโดยต่อท้ายเป็น “–no-dev”
    ซึ่งในการติดตั้งผ่าน composer จะเป็นการสร้างโฟลเดอร์โปรเจ็คไปในตัว ดังนั้น เราจะต้องเรียกใช้คำสั่ง
    composer ผ่าน command line โดยให้อยู่ที่ path C > xampp > htdocs 
 
    และใช้คำสั่งติดตั้งดังนี้
 
composer create-project codeigniter4/appstarter mysslweb --no-dev
    รูปแบบคือ composer create-project codeigniter4/appstarter [ชื่อโฟลเดอร์โปรเจ็ค] --no-dev
 
 

 
 
    หลังจากติดตั้งเรียบร้อย เราก็จะได้ไฟล์ต่างๆ ในโฟลเดอร์โปรเจ็ค ดังรูป
 
 

 
 
    จะเห็นว่าโฟลเดอร์ที่เพิ่มเข้ามา จะแตกต่างจากวิธีแรก มีส่วนของ .github tests และ vendor เพิ่มเข้ามาซึ่งด้านในโฟลเดอร์
vendor ก็จะมี package ที่จำเป็นเบื้องต้น 
 
    หากไม่มีอะไรผิดพลาด เมื่อทดสอบรันเว็บ ก็จะแสดงผลเช่นเดียวกับวิธีแรก
 
    ในที่นี้ เราจะใช้โค้ดจากวิธีการใช้งานผ่าน composer เป็นตัวตั้งต้น สำหรับแนะนำต่อไป 
 
    โดยหากมีเวอร์ชั่นใหม่ๆ ออกมา และเราต้องการอัพเดท เป้นเวอร์ชั่นล่าสุด ก็สามารถใช้คำสั่ง 
 
composer update --no-dev
    เพื่อทำการอัพเดทได้
 
 
 
    ในการใช้งาน CodeIgniter 4 จะมีโหมดการใช้งานด้วยกัน 2 โหมดหลัก คือ production และ development ซึ่งค่าเริ่มต้นจะ
อยู่ในโหมด production ดังนั้น ให้ขั้นตอนการพัฒนา เพื่อให้สามารถเห็นส่วนของ การแจ้งเตือน error ต่างๆ เราต้องปรับให้อยู่ใน
โหมด development ก่อน ดังนี้
    ให้แก้ไขไฟล์ที่ชื่อ env โดยเปลี่ยนชื่อเป็น .env หรือไฟล์นามสกุล env จากนั้นให้เปิดโดย text editor เพื่อแก้ไข ในส่วนของ
 
# CI_ENVIRONMENT = production
    ตัด comment ที่กำหนดโดยตัว # ออก แล้วเปลี่ยนค่าเป็น development จะได้เป็น ดังนี้
 
CI_ENVIRONMENT = development
    * นอกจากสองโหมดข้างต้น ยังมีโหมด testing สำหรับทดสอบอีกด้วย
 
    ขออธิบายก่อนว่า ไฟล์ .env จะเป็นตัวช่วยให้เรากำหนดค่าต่างๆ ที่ใช้สำหรับทดสอบ โดยจะถูกเรียกใช้หรือ override ค่าที่กำหนด
ในส่วนที่อยู่ในโฟลเดอร์ app/Config กล่าวคือ ค่าต่างๆ ที่ใช้งานบน server จริงที่กำหนดในไฟล์ที่อยู่ในโฟลเดอร์ app/config ไม่ว่าจะ
เป็นชื่อโดเมนจริง ที่กำหนดในไฟล์ App.php ชื่อผู้ใช้และรหัสผ่าน การเชื่อมต่อฐานข้อมูลในไฟล์ Database.php จะถูกแทนที่ด้วยค่า
ทดสอบที่กำหนดในไฟล์ .env นั่นเอง
 
    ในที่นี้สมมติ แก้ไขในส่วนของ  app.baseURL เพิ่มเติม ในไฟล์ .env ดังนี้
 
 

 
 
    ต่อไปเราจะลองไปทดสอบแก้ไขโค้ดการแสดงผลในไฟล์ 
    app > Views > welcome_message.php
 
 

 
 
    ทดสอบใช้งาน จะแสดงผลลัพธ์ดังรูป ค่า baseURL จะถูก override ด้วยค่าที่กำหนดในไฟล์ .env
 
 

 
 
    ต่อไป เราจะลองดูการทำงานในโหมด developer เมื่อเกิด error ขึ้น โดยแทรกโค้ดดังนี้เพื่อจำลองการ error
 
 

 
 
    ผลลัพธ์ที่ได้ จะช่วยให้เราสามารถแก้ไข หรือทำการ Debugging จาก error ที่เกิดขึ้นได้ง่าย

 

 
 
    หากอยู่ในโหมด production จะแสดงผลัพธ์เป็นดังนี้
 
 


 
 
    ตอนนี้เราได้ทำความคุ้นเคย และรู้จักกับ CodeIgniter 4 เบื้องต้นไปแล้ว เนื้อหาในตอนหน้าจะเป็นอะไร รอติดตาม


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ



อ่านต่อที่บทความ









เนื้อหาที่เกี่ยวข้อง






เนื้อหาพิเศษ เฉพาะสำหรับสมาชิก

กรุณาล็อกอิน เพื่ออ่านเนื้อหาบทความ

ยังไม่เป็นสมาชิก

สมาชิกล็อกอิน



( หรือ เข้าใช้งานผ่าน Social Login )




URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ