Codeโครงสร้างโฟลเดอร์ ไฟล์ และไดเร็กทอรีของ Igniter

⚡ สรุปอย่างชาญฉลาด

CodeIgniter จัดระเบียบโปรเจ็กต์ PHP ไว้ในโฟลเดอร์ที่คาดเดาได้สำหรับตรรกะของแอปพลิเคชัน ไฟล์ระบบของเฟรมเวิร์ก แพ็กเกจของ Composer และสคริปต์เริ่มต้นเพียงไฟล์เดียว ทำให้ผู้เริ่มต้นสามารถค้นหาโค้ดได้อย่างรวดเร็ว และนักพัฒนาที่มีประสบการณ์ระดับกลางสามารถปรับขนาดโครงสร้าง MVC ที่สะอาดตาได้

  • 📁 โฟลเดอร์แอปพลิเคชัน: โฟลเดอร์นี้เก็บคอนโทรลเลอร์ โมเดล วิว ไฟล์คอนฟิก แคช ตัวช่วย ฮุก ภาษา ไลบรารี บันทึก และแพ็กเกจจากภายนอก
  • 🧩 โฟลเดอร์ระบบ: ไฟล์นี้เก็บแกนหลักของเฟรมเวิร์ก ไดรเวอร์ฐานข้อมูล ฟอนต์ ตัวช่วย ภาษา และไลบรารีในตัว ห้ามแก้ไขไฟล์เหล่านี้โดยตรง
  • ⚙️ จุดเริ่มต้น: ไฟล์ index.php ในไดเร็กทอรีหลักจะเริ่มต้นเฟรมเวิร์ก กำหนดเส้นทาง และส่งต่อคำขอ HTTP ทุกรายการผ่านคอนโทรลเลอร์ส่วนหน้า
  • ความแตกต่างระหว่างเวอร์ชัน: CodeIgniter 3 ใช้ไดเร็กทอรี application/ และ system/ ในขณะที่ CodeIgniter 4 นำเสนอโฟลเดอร์ app/, public/ และ writable/ เพื่อการแยกส่วนที่เข้มงวดมากขึ้น
  • 🧪 คู่มือผู้ขายและผู้ใช้: Vontor จะจัดเก็บแพ็กเกจ Composer ที่คุณนำไปใช้งาน ในขณะที่ user_guide เป็นเอกสารภายในเครื่องที่คุณควรแยกไว้ต่างหากจากเซิร์ฟเวอร์ที่ใช้งานจริง

Codeโฟลเดอร์ Igniter

ความเข้าใจเกี่ยวกับโครงสร้างไฟล์ใน CodeIgniter เป็นสิ่งจำเป็นก่อนที่คุณจะสร้างแอปพลิเคชันจริงใดๆ โครงสร้างที่คาดเดาได้จะช่วยให้คุณค้นหาคอนโทรลเลอร์ โมเดล และวิวได้อย่างรวดเร็ว แก้ไขปัญหาการกำหนดเส้นทาง และฝึกอบรมสมาชิกทีมใหม่ได้เร็วขึ้น บทช่วยสอนนี้จะกล่าวถึงโครงสร้างพื้นฐานแบบคลาสสิก Codeโครงสร้างของ Igniter 3 ที่ยังคงใช้งานกันอย่างแพร่หลาย และยังชี้แจงความแตกต่างที่สำคัญที่คุณจะพบเจออีกด้วย CodeIgniter 4.x ได้เพิ่มโฟลเดอร์ระดับบนสุดแยกต่างหาก ได้แก่ app/, public/ และ writable/

อะไรคือ Codeโครงสร้างไฟล์และไดเร็กทอรีของ Igniter เป็นอย่างไร?

การขอ Codeโครงสร้างไฟล์ของ Igniter คือการจัดเรียงโฟลเดอร์และไฟล์ PHP เริ่มต้นที่เฟรมเวิร์กนี้จัดเตรียมไว้ให้หลังจากที่คุณดาวน์โหลดหรือติดตั้ง โครงสร้างนี้จะแยกตรรกะการทำงานของแอปพลิเคชันออกจากแกนหลักของเฟรมเวิร์ก แยกการพึ่งพาของ Composer ออกจากกัน และมีจุดเริ่มต้นเพียงจุดเดียวผ่านไฟล์ index.php ภาพต่อไปนี้แสดงโครงสร้างไฟล์ใน Igniter Codeตัวจุดประกาย:

Codeโครงสร้างไฟล์/โฟลเดอร์/ไดเร็กทอรีของ Igniter
Codeโครงสร้างไฟล์/โฟลเดอร์/ไดเร็กทอรีของ Igniter

นี่คือโครงสร้างไดเร็กทอรีแบบย่อสำหรับผู้เริ่มต้นใช้งาน Codeขั้นตอนการติดตั้ง Igniter 3:

// CodeIgniter 3 root layout
project-root/
├── application/
├── system/
├── user_guide/
├── vendor/
├── composer.json
├── composer.lock
└── index.php

คำอธิบายเกี่ยวกับโฟลเดอร์ระดับบนสุด

ต่อไปนี้เรามาดูไฟล์ข้างต้นกัน Codeโครงสร้างของตัวจุดประกายไฟ:

  • ใบสมัคร – นี่คือไดเร็กทอรีที่จะเก็บตรรกะการทำงานของแอปพลิเคชันของคุณ โค้ดทั้งหมดของแอปพลิเคชันของคุณจะอยู่ในไดเร็กทอรีนี้
  • ระบบ – โฟลเดอร์นี้มีไฟล์หลักของเฟรมเวิร์ก ไม่แนะนำให้ทำการเปลี่ยนแปลงในไดเร็กทอรีนี้หรือใส่โค้ดแอปพลิเคชันของคุณเองลงในไดเร็กทอรีนี้
  • คู่มือผู้ใช้ – ไดเร็กทอรีนี้มีคู่มือผู้ใช้สำหรับ Codeเครื่องทำให้ลุกไหม้.
  • ผู้ขาย – โฟลเดอร์นี้ประกอบด้วยซอร์สโค้ดของแพ็กเกจ Composer ไฟล์อื่นๆ ที่เกี่ยวข้องกับโฟลเดอร์นี้ได้แก่ composer.json และ composer.lock
  • index.php – นี่คือจุดเริ่มต้นในการสมัคร

Codeไดเร็กทอรีย่อยของแอปพลิเคชัน Igniter

ต่อไปนี้เราจะมาดูรายละเอียดของไดเร็กทอรีต่างๆ กันให้มากขึ้น ดังที่กล่าวไปแล้ว ไดเร็กทอรีแอปพลิเคชันจะเก็บโค้ดของโปรเจ็กต์ของคุณ ในส่วนนี้ เราจะมาดูไดเร็กทอรีย่อยภายในต่างๆ ในนั้นกัน Codeโครงสร้างไดเร็กทอรีของ Igniter:

  • แคช – จัดเก็บไฟล์แคชที่สร้างขึ้นโดยไลบรารีแคชเอาต์พุตและฐานข้อมูล
  • การตั้งค่า – เก็บไฟล์การตั้งค่าต่างๆ เช่น database.php, routes.php และ autoload.php
  • ตัวควบคุม – ตัวควบคุมแอปพลิเคชันทั้งหมดถูกกำหนดและแมปไว้ที่นี่ URL ส่วนต่างๆ ไปสู่การกระทำ
  • แกน – ประกอบด้วยคลาสหลักที่กำหนดเองซึ่งขยายไฟล์ระบบ ตัวอย่างเช่น หากคุณสร้างคอนโทรลเลอร์พื้นฐานที่คอนโทรลเลอร์อื่นๆ ควรขยาย คุณจะต้องวางคอนโทรลเลอร์นั้นไว้ในไดเร็กทอรีนี้
  • ผู้ช่วยเหลือ – รายชื่อนี้ของ Codeโครงสร้างโฟลเดอร์ของ Igniter ใช้สำหรับฟังก์ชันช่วยเหลือที่ผู้ใช้กำหนดเอง
  • ตะขอ – ใช้สำหรับ hook แบบกำหนดเองในโครงสร้างโฟลเดอร์ CI ซึ่งจะทำงานระหว่างรอบการทำงานของเฟรมเวิร์ก
  • language – ใช้สำหรับจัดเก็บไฟล์ภาษาสำหรับแอปพลิเคชันที่ใช้มากกว่าหนึ่งภาษา
  • ห้องสมุด – ใช้สำหรับจัดเก็บไลบรารีที่สร้างขึ้นเอง
  • บันทึก – ไฟล์บันทึกการทำงานของแอปพลิเคชันจะถูกเก็บไว้ในไดเร็กทอรีนี้
  • โมเดล – โมเดลแอปพลิเคชันทั้งหมดควรถูกกำหนดไว้ในไดเร็กทอรีนี้
  • บุคคลที่สาม – ส่วนนี้ใช้สำหรับแพ็กเกจแบบกำหนดเองที่คุณหรือนักพัฒนาท่านอื่นสร้างขึ้น
  • ยอดวิว – ไฟล์แสดงผลแอปพลิเคชันจะถูกจัดเก็บไว้ในไดเร็กทอรีนี้

ต่อไปนี้เป็นตัวอย่างโครงสร้างไดเร็กทอรีย่อยของแอปพลิเคชัน:

// application/ subdirectories
application/
├── cache/
├── config/
├── controllers/
├── core/
├── helpers/
├── hooks/
├── language/
├── libraries/
├── logs/
├── models/
├── third_party/
└── views/

Codeไดเร็กทอรีย่อยของระบบ Igniter

ต่อไปนี้เราจะมาดูโครงสร้างไฟล์ของ CI ในส่วนของไดเร็กทอรีย่อยของระบบกัน โปรดจำไว้ว่านี่คือที่เก็บซอร์สโค้ดของเฟรมเวิร์ก ดังนั้นห้ามทำการเปลี่ยนแปลงใดๆ กับไฟล์ในไดเร็กทอรีนี้

  • แกน – นี่เป็นเหมือนหัวใจของ Codeเฟรมเวิร์ก Igniterไฟล์หลักทั้งหมดที่ประกอบเป็นเฟรมเวิร์กอยู่ที่นี่ หากคุณต้องการขยายฟังก์ชันการทำงานของไฟล์หลัก คุณต้องสร้างไฟล์หลักแบบกำหนดเองในไดเร็กทอรีแอปพลิเคชัน หลังจากนั้น คุณสามารถเขียนทับหรือเพิ่มพฤติกรรมใหม่ที่คุณต้องการได้ คุณไม่ควรทำการเปลี่ยนแปลงโดยตรงในไฟล์นี้
  • ฐานข้อมูล – ไดรเวอร์ฐานข้อมูล แคช และไฟล์อื่นๆ ที่จำเป็นสำหรับการดำเนินการกับฐานข้อมูลจะถูกจัดเตรียมไว้ในส่วนนี้
  • แบบอักษร – ตามชื่อที่บ่งบอก โฟลเดอร์นี้รวบรวมแบบอักษรและข้อมูลที่เกี่ยวข้องกับแบบอักษร
  • ผู้ช่วยเหลือ – ไดเร็กทอรีนี้ใน Codeโฟลเดอร์โครงสร้างของ Igniter ประกอบด้วยฟังก์ชันช่วยเหลือต่างๆ ที่มีให้ใช้งานได้ทันที
  • language – ประกอบด้วยไฟล์ภาษาที่ใช้โดยเฟรมเวิร์ก
  • ห้องสมุด – ประกอบด้วยไฟล์ต้นฉบับสำหรับไลบรารีต่างๆ ที่มาพร้อมกับ Codeตัวจุดไฟพร้อมใช้งานได้ทันที

โครงสร้างโฟลเดอร์ของระบบมีลักษณะดังนี้:

// system/ subdirectories
system/
├── core/
├── database/
├── fonts/
├── helpers/
├── language/
└── libraries/

Codeคู่มือผู้ใช้ Igniter สารบัญ

สารบัญนี้ทำหน้าที่เป็นคู่มืออ้างอิงเมื่อคุณต้องการทำความเข้าใจ CodeIgniter API คุณไม่ควรอัปโหลดไดเร็กทอรีนี้เมื่อปรับใช้แอปพลิเคชันของคุณไปยังเวอร์ชันใช้งานจริง เนื่องจากจะเพิ่มขนาดและเปิดเผยเอกสารที่ไม่ควรอยู่บนเซิร์ฟเวอร์ที่ใช้งานจริง

Codeรายชื่อผู้จำหน่าย Igniter

ไดเร็กทอรีนี้ประกอบด้วยไฟล์ต้นฉบับสำหรับแพ็กเกจที่คุณติดตั้งผ่าน Composer ไฟล์ในไดเร็กทอรีนี้ควรปล่อยไว้ตามเดิมและไม่ควรทำการเปลี่ยนแปลงใดๆ ต่างจากไดเร็กทอรี user_guide ไดเร็กทอรีนี้ควรได้รับการอัปโหลดหากคุณใช้แพ็กเกจ Composer ในแอปพลิเคชันของคุณ

ไฟล์ index.php

ไฟล์ index.php ใน Codeโครงสร้างไฟล์ของ Igniter ประกอบด้วยโค้ดบูตสแตรปที่กำหนดสภาพแวดล้อม เส้นทาง และการรายงานข้อผิดพลาด ก่อนที่จะส่งการควบคุมไปยังเฟรมเวิร์ก ไฟล์นี้อยู่ในไดเร็กทอรีหลักและทำหน้าที่เป็นตัวควบคุมส่วนหน้าสำหรับคำขอ HTTP ที่เข้ามาทุกรายการ

สรุป ความน่าเชื่อถือของ Olymp Trade? CodeIgniter 4 เปลี่ยนโครงสร้าง

CodeIgniter 4.x ได้ปรับโครงสร้างใหม่เพื่อเพิ่มความปลอดภัยและการโหลดอัตโนมัติตามมาตรฐาน PSR-4 แทนที่จะมีโฟลเดอร์แอปพลิเคชันเดียว ตอนนี้คุณจะเห็นโฟลเดอร์ระดับบนสุดสามโฟลเดอร์ที่แยกส่วนต่างๆ ออกจากกันอย่างชัดเจนยิ่งขึ้น:

  • แอป / – เทียบเท่ากับโฟลเดอร์ application/ เดิม ที่เก็บ Controllers, Models, Views, Config, Filters และ Libraries
  • สาธารณะ/ – โฟลเดอร์เดียวที่สามารถเข้าถึงได้ทางเว็บ ซึ่งประกอบด้วยไฟล์ index.php และไฟล์ CSS, JS และรูปภาพของคุณ
  • สามารถเขียนได้/ – ทำหน้าที่จัดเก็บแคช บันทึกการทำงาน เซสชัน และไฟล์อัปโหลดที่เฟรมเวิร์กจำเป็นต้องเขียนในระหว่างการทำงาน
  • ระบบ/ – ยังคงมีแกนหลักของเฟรมเวิร์กอยู่ โดยจัดอยู่ในเนมสเปซภายใต้ Codeตัวจุดไฟ\.
  • ผู้ขาย / – แพ็กเกจสำหรับนักแต่งเพลง มีบทบาทเหมือนกับ CI 3 ทุกประการ
// CodeIgniter 4 root layout
project-root/
├── app/
├── public/
├── writable/
├── system/
├── vendor/
├── tests/
├── composer.json
├── env
└── spark

ถ้าคุณกำลังเริ่มต้นโครงการใหม่ในวันนี้ CodeIgniter 4 เป็นเวอร์ชันที่แนะนำ หากคุณยังคงดูแลโค้ดเบสเก่า โครงสร้าง CI 3 ที่อธิบายไว้ข้างต้นจะตรงกับสิ่งที่คุณเห็นในดิสก์

การทำงานร่วมกับ Codeโครงสร้าง Igniter ในแต่ละวัน

เมื่อคุณรู้ว่าแต่ละโฟลเดอร์อยู่ที่ไหน งานทั่วไปก็จะง่ายขึ้น สร้างคอนโทรลเลอร์ใหม่ใน application/controllers/ (หรือ app/Controllers/ ใน CI 4) จับคู่กับเส้นทางใน config/routes.php สร้างโมเดลใน models/ และแสดงผลลัพธ์จากไฟล์วิวใน views/ เก็บการตั้งค่าไว้ใน config/ ใส่โค้ดที่ใช้ซ้ำได้ลงใน helpers/ หรือ libraries/ และปล่อยให้ Composer จัดการทุกอย่างภายใน vendor/ ยึดมั่นในระเบียบวินัยนี้ แล้วโปรเจ็กต์ของคุณจะยังคงใช้งานง่ายแม้ว่ามันจะเติบโตขึ้นก็ตาม

คำถามที่พบบ่อย

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

In Codeใน Igniter 4 คุณต้องวางคอนโทรลเลอร์ใหม่ไว้ในโฟลเดอร์ app/Controllers/ โดยใช้เนมสเปซ PSR-4 จับคู่ชื่อไฟล์กับชื่อคลาส จากนั้นลงทะเบียนเส้นทางใน app/Config/Routes.php เพื่อให้เฟรมเวิร์กสามารถส่งคำขอไปยังเส้นทางนั้นได้

ไม่ โฟลเดอร์ user_guide เป็นเอกสารภายในเครื่องเท่านั้น ควรแยกโฟลเดอร์นี้ออกจากการใช้งานจริงเพื่อลดขนาดไฟล์และหลีกเลี่ยงการเปิดเผยเอกสารอ้างอิงของเฟรมเวิร์กบนเซิร์ฟเวอร์ที่ใช้งานจริง ในทางตรงกันข้าม โฟลเดอร์ vendor และ system จำเป็นต้องติดตั้งใช้งาน

ไฟล์ index.php เป็นตัวควบคุมส่วนหน้า (front controller) ทำหน้าที่ตั้งค่าสภาพแวดล้อม กำหนดค่าคงที่ของพาธ และโหลดบูตสแตรปของเฟรมเวิร์ก เพื่อให้ทุกคำขอที่เข้ามาถูกส่งผ่านไปยังส่วนนี้ Codeสร้างไปป์ไลน์ Igniter ก่อนที่จะเข้าถึงคอนโทรลเลอร์และวิวของคุณ

ใช่แล้ว เครื่องมือ AI เช่น GitHub Copilot, Cursor และ Claude สามารถช่วยสร้างโครงสร้างคอนโทรลเลอร์ โมเดล และวิวในโฟลเดอร์ที่ถูกต้อง อธิบายไฟล์ที่ไม่คุ้นเคย และระบุคลาสที่วางผิดที่ได้ เครื่องมือเหล่านี้มีประโยชน์อย่างยิ่งเมื่อคุณสลับไปมาระหว่างสภาพแวดล้อมต่างๆ CodeIgniter 3 และ Codeเลย์เอาต์ของ Igniter 4

ผู้ช่วย AI จะอธิบายว่าตัวควบคุมจัดการคำขออย่างไร โมเดลจัดการข้อมูลอย่างไร และวิวแสดงผลลัพธ์อย่างไร จากนั้นจะสร้างไฟล์ที่ตรงกันในโฟลเดอร์ที่ถูกต้อง นอกจากนี้ยังสามารถตรวจสอบโค้ดของคุณ แนะนำการปรับปรุง และเสริมสร้างการแยกส่วน MVC ในขณะที่คุณสร้างแอปพลิเคชันจริง Codeโครงการ Igniter

สรุปโพสต์นี้ด้วย: