CodeIgniter - ไลบรารี
ส่วนสำคัญของเฟรมเวิร์ก CodeIgniter คือไลบรารี มีชุดไลบรารีที่หลากหลายซึ่งช่วยเพิ่มความเร็วในการพัฒนาแอปพลิเคชันทางอ้อม ไลบรารีระบบตั้งอยู่ที่ระบบ / ไลบรารี สิ่งที่เราต้องทำคือโหลดไลบรารีที่เราต้องการใช้ สามารถโหลดไลบรารีได้ตามที่แสดงด้านล่าง -
$this->load->library('class name');
ที่ไหน class nameคือชื่อไลบรารีที่เราต้องการโหลด หากเราต้องการโหลดหลายไลบรารีเราก็สามารถส่งอาร์เรย์เป็นอาร์กิวเมนต์ไปlibrary() ฟังก์ชันดังแสดงด้านล่าง -
$this->load->library(array('email', 'table'));
ชั้นเรียนห้องสมุด
ชั้นเรียนของห้องสมุดตั้งอยู่ใน system/libraries. แต่ละคลาสมีฟังก์ชันต่างๆเพื่อลดความซับซ้อนของงานที่กำลังพัฒนา ตารางต่อไปนี้แสดงชื่อของคลาสไลบรารีและคำอธิบาย
SN | คลาสห้องสมุดและคำอธิบาย |
---|---|
1 | Benchmarking Class คลาสการเปรียบเทียบจะทำงานอยู่เสมอทำให้สามารถคำนวณความแตกต่างของเวลาระหว่างจุดที่ทำเครื่องหมายสองจุดได้ |
2 | Caching Class คลาสนี้จะแคชเพจเพื่อเข้าถึงความเร็วเพจอย่างรวดเร็ว |
3 | Calendaring Class เมื่อใช้คลาสนี้คุณสามารถสร้างปฏิทินแบบไดนามิก |
4 | Shopping Cart Class เมื่อใช้คลาสนี้คุณสามารถเพิ่มหรือลบรายการออกจากตะกร้าสินค้าได้ รายการจะถูกบันทึกในเซสชันและจะยังคงใช้งานได้จนกว่าผู้ใช้จะเรียกดูไซต์ |
5 | Config Class การตั้งค่าคอนฟิกสามารถเรียกดูได้โดยใช้คลาสนี้ คลาสนี้เริ่มต้นโดยอัตโนมัติ |
6 | Email Class คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับอีเมลเช่นส่งหรือตอบกลับอีเมล |
7 | Encryption Class คลาสนี้มีฟังก์ชันการเข้ารหัสข้อมูลสองทาง |
8 | File Uploading Class คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับการอัพโหลดไฟล์ คุณสามารถตั้งค่าต่างๆเช่นประเภทของไฟล์ที่จะอัพโหลดขนาดของไฟล์เป็นต้น |
9 | Form Validation Class คลาสนี้มีฟังก์ชันต่างๆเพื่อตรวจสอบความถูกต้องของฟอร์ม |
10 | FTP Class คลาสนี้มีฟังก์ชันต่างๆที่เกี่ยวข้องกับ FTP เช่นการถ่ายโอนไฟล์เพื่อลบเซิร์ฟเวอร์ย้ายเปลี่ยนชื่อหรือลบไฟล์บนเซิร์ฟเวอร์ |
11 | Image Manipulation Class การจัดการรูปภาพเช่นการปรับขนาดการสร้างภาพขนาดย่อการครอบตัดการหมุนการสร้างลายน้ำสามารถทำได้ด้วยความช่วยเหลือของคลาสนี้ |
12 | Input Class คลาสนี้ประมวลผลข้อมูลอินพุตล่วงหน้าด้วยเหตุผลด้านความปลอดภัย |
13 | Language Class คลาสนี้ใช้สำหรับการทำให้เป็นสากล |
14 | Loader Class คลาสนี้โหลดองค์ประกอบต่างๆเช่นดูไฟล์ไดรเวอร์ตัวช่วยโมเดล ฯลฯ |
15 | Migrations Class คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับการย้ายฐานข้อมูล |
16 | Output Class คลาสนี้ส่งผลลัพธ์ไปยังเบราว์เซอร์และแคชหน้าเว็บนั้นด้วย |
17 | Pagination Class คลาสนี้เพิ่มฟังก์ชันการแบ่งหน้าในหน้าเว็บ |
18 | Template Parser Class Template Parser Class สามารถทำการแทนที่ข้อความอย่างง่ายสำหรับตัวแปรหลอกที่อยู่ในไฟล์มุมมองของคุณ สามารถแยกวิเคราะห์ตัวแปรอย่างง่ายหรือคู่แท็กตัวแปร |
19 | Security Class คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับความปลอดภัยเช่น XSS Filtering, CSRF เป็นต้น |
20 | Session Library คลาสนี้มีฟังก์ชันเพื่อรักษาเซสชันของแอปพลิเคชันของคุณ |
21 | HTML Table คลาสนี้ใช้เพื่อสร้างตาราง HTML โดยอัตโนมัติจากผลลัพธ์ของอาร์เรย์หรือฐานข้อมูล |
22 | Trackback Class Trackback Class มีฟังก์ชันที่ช่วยให้คุณสามารถส่งและรับข้อมูล Trackback |
23 | Typography Class Typography Class มีวิธีการที่ช่วยในการจัดรูปแบบข้อความ |
24 | Unit Testing Class คลาสนี้มีฟังก์ชันสำหรับการทดสอบหน่วยแอปพลิเคชันของคุณและสร้างผลลัพธ์ |
25 | URI Class URI Class มีวิธีการที่ช่วยให้คุณดึงข้อมูลจากสตริง URI ของคุณ หากคุณใช้การกำหนดเส้นทาง URI คุณยังสามารถดึงข้อมูลเกี่ยวกับเซ็กเมนต์ที่กำหนดเส้นทางใหม่ได้ |
26 | User Agent Class User Agent Class มีฟังก์ชันที่ช่วยระบุข้อมูลเกี่ยวกับเบราว์เซอร์อุปกรณ์เคลื่อนที่หรือหุ่นยนต์ที่เยี่ยมชมไซต์ของคุณ นอกจากนี้คุณสามารถรับข้อมูลผู้อ้างอิงตลอดจนภาษาและข้อมูลชุดอักขระที่รองรับ |
27 | XML-RPC and XML-RPC Server Classes คลาส XML-RPC ของ CodeIgniter อนุญาตให้คุณส่งคำขอไปยังเซิร์ฟเวอร์อื่นหรือตั้งค่าเซิร์ฟเวอร์ XML-RPC ของคุณเองเพื่อรับคำขอ |
28 | Zip Encoding Class คลาสนี้ใช้เพื่อสร้างไฟล์ zip ของข้อมูลของคุณ |
การสร้างไลบรารี
CodeIgniter มีไลบรารีมากมายซึ่งคุณสามารถค้นหาได้ system/libraries โฟลเดอร์ แต่ CodeIgniter ไม่ได้ จำกัด เพียงแค่ไลบรารีระบบเท่านั้นคุณสามารถสร้างไลบรารีของคุณเองได้เช่นกันซึ่งสามารถเก็บไว้ใน application/librariesโฟลเดอร์ คุณสามารถสร้างไลบรารีได้สามวิธี
- สร้างห้องสมุดใหม่
- ขยายไลบรารีดั้งเดิม
- แทนที่ไลบรารีดั้งเดิม
สร้างห้องสมุดใหม่
ในขณะที่สร้างห้องสมุดใหม่ควรคำนึงถึงสิ่งต่อไปนี้ -
- ชื่อไฟล์ต้องขึ้นต้นด้วยอักษรตัวใหญ่เช่น Mylibrary.php
- ชื่อคลาสต้องขึ้นต้นด้วยอักษรตัวใหญ่เช่นคลาส Mylibrary
- ชื่อของคลาสและชื่อของไฟล์ต้องตรงกัน
Mylibrary.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Mylibrary {
public function some_function() {
}
}
/* End of file Mylibrary.php */
Loading the Custom Library
คุณสามารถโหลดไลบรารีข้างต้นได้โดยดำเนินการตามบรรทัดต่อไปนี้ในคอนโทรลเลอร์ของคุณ
$this->load->library(‘mylibrary’);
mylibrary เป็นชื่อห้องสมุดของคุณและคุณสามารถเขียนเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้ ใช้ชื่อของไลบรารีที่ไม่มีนามสกุล“ .php” หลังจากโหลดไลบรารีแล้วคุณยังสามารถเรียกใช้ฟังก์ชันของคลาสนั้นได้ตามที่แสดงด้านล่าง
$this->mylibrary->some_function();
ขยาย Native Library
บางครั้งคุณอาจต้องเพิ่มฟังก์ชันการทำงานของคุณเองในไลบรารีที่ CodeIgniter จัดเตรียมไว้ให้ CodeIgniter จัดเตรียมสิ่งอำนวยความสะดวกที่คุณสามารถขยายไลบรารีดั้งเดิมและเพิ่มฟังก์ชันของคุณเองได้ เพื่อให้บรรลุเป้าหมายนี้คุณต้องขยายคลาสของคลาสไลบรารีดั้งเดิม ตัวอย่างเช่นหากคุณต้องการขยายไลบรารีอีเมลก็สามารถทำได้ดังที่แสดงด้านล่าง -
Class MY_Email extends CI_Email {
}
ในตัวอย่างข้างต้นคลาส MY_Email กำลังขยายคลาสอีเมลของไลบรารีดั้งเดิม CI_Email ไลบรารีนี้สามารถโหลดได้ด้วยวิธีการโหลดไลบรารีอีเมลมาตรฐาน บันทึกรหัสด้านบนในไฟล์ My_Email.php
แทนที่ Native Library
ในบางสถานการณ์คุณไม่ต้องการใช้ไลบรารีเนทีฟในแบบที่มันทำงานและต้องการแทนที่ด้วยวิธีของคุณเอง ซึ่งสามารถทำได้โดยการแทนที่ไลบรารีเนทีฟ เพื่อให้บรรลุเป้าหมายนี้คุณต้องตั้งชื่อคลาสเดียวกันกับชื่อในไลบรารีเนทีฟ ตัวอย่างเช่นหากคุณต้องการแทนที่ไฟล์Email classจากนั้นใช้รหัสตามที่แสดงด้านล่าง บันทึกชื่อไฟล์ของคุณด้วยEmail.php และตั้งชื่อชั้นเรียนให้ CI_Email.
Email.php
Class CI_Email {
}