CodeIgniter - पुस्तकालय
एक CodeIgniter ढांचे का आवश्यक हिस्सा इसके पुस्तकालयों है। यह पुस्तकालयों का एक समृद्ध सेट प्रदान करता है, जो अप्रत्यक्ष रूप से एक एप्लिकेशन विकसित करने की गति को बढ़ाता है। सिस्टम लाइब्रेरी सिस्टम / लाइब्रेरी में स्थित है। बस हमें उस लाइब्रेरी को लोड करना है जिसका हम उपयोग करना चाहते हैं। पुस्तकालय को नीचे दिखाए अनुसार लोड किया जा सकता है -
$this->load->library('class name');
कहाँ पे class nameउस लाइब्रेरी का नाम है जिसे हम लोड करना चाहते हैं। यदि हम कई पुस्तकालयों को लोड करना चाहते हैं, तो हम तर्क के रूप में एक सरणी पास कर सकते हैंlibrary() नीचे दिखाए अनुसार कार्य करें -
$this->load->library(array('email', 'table'));
लाइब्रेरी क्लासेस
पुस्तकालय की कक्षाएं स्थित हैं system/libraries। विकासशील कार्यों को सरल बनाने के लिए प्रत्येक वर्ग के पास विभिन्न कार्य हैं। निम्नलिखित तालिका में पुस्तकालय वर्ग के नाम और उसका विवरण दिखाया गया है।
एस.एन. | लाइब्रेरी क्लास और विवरण |
---|---|
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 यह क्लास विभिन्न एफ़टीपी संबंधित फ़ंक्शंस प्रदान करती है जैसे सर्वर को हटाने, फ़ाइलों को स्थानांतरित करने, सर्वर पर फ़ाइलों को स्थानांतरित करने या हटाने के लिए। |
1 1 | 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 टेम्प्लेट पार्सर क्लास आपके दृश्य फ़ाइलों में निहित छद्म-चर के लिए सरल पाठ प्रतिस्थापन कर सकता है। यह सरल चर या चर टैग जोड़े को पार्स कर सकता है। |
19 | Security Class इस वर्ग में सुरक्षा संबंधी कार्य जैसे XSS फ़िल्टरिंग, CSRF आदि शामिल हैं। |
20 | Session Library यह वर्ग आपके आवेदन के सत्र को बनाए रखने के लिए कार्यशीलता प्रदान करता है। |
21 | HTML Table यह वर्ग सरणी या डेटाबेस परिणामों से HTML तालिकाओं को ऑटो-जेनरेट करने के लिए उपयोग किया जाता है। |
22 | Trackback Class Trackback क्लास आपको फ़ंक्शन प्रदान करता है जो आपको Trackback डेटा भेजने और प्राप्त करने में सक्षम बनाता है। |
23 | Typography Class टाइपोग्राफी क्लास ऐसी विधियाँ प्रदान करती है जो पाठ को प्रारूपित करने में मदद करती है। |
24 | Unit Testing Class यह वर्ग आपके आवेदन का परीक्षण करने और परिणाम उत्पन्न करने के लिए कार्यक्षमता प्रदान करता है। |
25 | URI Class यूआरआई क्लास ऐसे तरीके प्रदान करता है जो आपको अपने यूआरआई स्ट्रिंग्स से जानकारी प्राप्त करने में मदद करते हैं। यदि आप यूआरआई रूटिंग का उपयोग करते हैं, तो आप पुन: प्राप्त खंडों के बारे में जानकारी भी प्राप्त कर सकते हैं। |
26 | User Agent Class उपयोगकर्ता एजेंट वर्ग फ़ंक्शंस प्रदान करता है जो आपकी साइट पर आने वाले ब्राउज़र, मोबाइल डिवाइस या रोबोट के बारे में जानकारी की पहचान करने में मदद करता है। इसके अलावा, आप रेफरल जानकारी के साथ-साथ भाषा और समर्थित चरित्र-सेट जानकारी प्राप्त कर सकते हैं। |
27 | XML-RPC and XML-RPC Server Classes CodeIgniter की XML-RPC कक्षाएं आपको किसी अन्य सर्वर को अनुरोध भेजने की अनुमति देती हैं, या अनुरोध प्राप्त करने के लिए अपना स्वयं का XML-RPC सर्वर सेट करती हैं। |
28 | Zip Encoding Class इस वर्ग का उपयोग आपके डेटा के ज़िप अभिलेखागार बनाने के लिए किया जाता है। |
पुस्तकालय बनाना
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();
नेटिव लाइब्रेरी का विस्तार करें
कभी-कभी, आपको CodeIgniter द्वारा उपलब्ध कराई गई लाइब्रेरी में अपनी कार्यक्षमता जोड़ने की आवश्यकता हो सकती है। CodeIgniter सुविधा प्रदान करता है जिसके द्वारा आप मूल पुस्तकालय का विस्तार कर सकते हैं और अपने स्वयं के कार्यों को जोड़ सकते हैं। इसे प्राप्त करने के लिए, आपको मूल पुस्तकालय वर्ग के वर्ग का विस्तार करना होगा। उदाहरण के लिए यदि आप ईमेल लाइब्रेरी का विस्तार करना चाहते हैं तो इसे नीचे दिखाए अनुसार किया जा सकता है -
Class MY_Email extends CI_Email {
}
यहाँ, उपरोक्त उदाहरण में, MY_Email वर्ग देशी पुस्तकालय के ईमेल वर्ग CI_Email का विस्तार कर रहा है। इस लाइब्रेरी को ईमेल लाइब्रेरी लोड करने के मानक तरीके से लोड किया जा सकता है। उपरोक्त कोड को My_Email.php फ़ाइल में सहेजें
नेटिव लाइब्रेरी को बदलें
कुछ स्थितियों में, आप मूल लाइब्रेरी का उपयोग नहीं करना चाहते हैं जिस तरह से यह काम करता है और इसे अपने तरीके से बदलना चाहता है। यह देशी पुस्तकालय को प्रतिस्थापित करके किया जा सकता है। इसे प्राप्त करने के लिए, आपको बस उसी श्रेणी का नाम देने की आवश्यकता है, जैसा कि मूल पुस्तकालय में दिया गया है। उदाहरण के लिए, यदि आप प्रतिस्थापित करना चाहते हैंEmail class, फिर नीचे दिखाए अनुसार कोड का उपयोग करें। के साथ अपना फ़ाइल नाम सहेजेंEmail.php और कक्षा का नाम दें CI_Email।
Email.php
Class CI_Email {
}