मंगलवार, 23 फ़रवरी 2010

कोड इग्नाइटर : एक परिचय

image

प्रस्तुत लेख कोड इग्नाइटर की मुख्य उपयोगकर्ता गाइड के आधार पर लिखा गया है. ज्यादातर अनुवाद है. हां कुछ जगहों पर संपादन या थोड़ी कांटछांट हुई है.

कोड इग्नाइटर में आपका स्वागत है

कोड इग्नाइटर एक एप्लिकेशन डेवलपमेंट फ़्रेमवर्क है जिसका प्रयोग पीएचपी के द्वारा वेब साइटों के निर्माण में किया जाता है. इसका उद्देश्य अक्सर उपयोग में आने वाले कोड का बेहतरीन संग्रह प्रदान करके आपको अपने प्रोजेक्ट्स तेजी से पूरे करने में सक्षम करना है. इसके प्रयोग से आपको अपने प्रोजेक्ट में कम कोड लिखना पड़ेगा और आप उसमें अधिक रचनात्मक रूप से ध्यान लगा पायेंगे.

कोड इग्नाइटर किसके लिये है?

कोड इग्नाइटर आपके लिये है यदि

  • आप असाधारण कार्य निष्पादन की क्षमता चाहते हैं.
  • आप अपने होस्टिंग एकाउंट्स में अनुकूलता चाहते हैं जो कि पीएचपी के विभिन्न संस्करण और विन्यास(Configuration) चलाते हैं.
  • आप एक ऐसा फ़्रेमवर्क चाहते हैं जिसे न के बराबर विन्यासित(Configure) करने की जरूरत हो.
  • आप एक ऐसा फ़्रेमवर्क चाहते हैं जिसके लिये आपको कमांड लाइन की जरूरत ना पड़े.
  • आप एक ऐसा फ़्रेमवर्क चाहते हैं जो आपको कोडिंग नियमों के अनुसार चलने के लिये बाध्य ना करे.
  • आप बड़ी मोनोलिथिक लाइब्रेरियों जैसे PEAR में रुचि नही रखते हैं.
  • आप कोई टेम्प्लेटिंग भाषा नही सीखना चाहते हैं.
  • आप जटिलता रहित आसान समाधान चाहते हैं
  • आप ऐसा प्रलेखन(documentation) चाहते हैं जो साफ़ सुथरा और गहराई से लिखा गया हो.

सर्वर की जरूरतें

  • PHP 4.3.2 अथवा अद्यतन
  • ज्यादातर वेब अनुप्रयोगों की प्रोग्रामिंग में डाटाबेसों की जरूरत पड़ती है. इस समय समर्थित डाटाबेस हैं:
    MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC.

 

कोड इग्नाइटर को सर्वप्रथम एलिस लैब इंक के सीईओ रिक एलिस के द्वारा विकसित किया गया था. यह फ़्रेमवर्क असल दुनिया की डेवलपमेंट समस्याओं को सुलझाने के लिए लिखा गया था. इसकी बहुत सी लाइब्रेरियां तथा हेल्पर एक्सप्रेशन इंजन से लिए गये हैं. वर्तमान में यह एक्सप्रेशन इंजन डेवलपमेंट टीम के द्वारा विकसित और पोषित किया जाता है.

कोड इग्नाइटर को आप यहां से डाउनलोड कर सकते हैं. http://www.codeigniter.com

स्थापना हेतु निर्देश

कोड इग्नाइटर को चार चरणों में स्थापित कर सकते हैं:

  1. पैकेज को अनजिप करें.
  2. कोड इग्नाइटर की फ़ाइलों और फ़ोल्डरों को सर्वर में अपलोड करें. सामान्यत: index.php फ़ाइल आपकी वेबसाइट के रूट में होनी चाहिये.
  3. application/config/config.php  फ़ाइल को टेक्स्ट एडीटर में खोलें और अपना base URL सेट करें. यदि आप इनक्रिप्शन या सेसन्स का उपयोग करना चाहते हैं तो encryption key भी सेट करें.
  4. यदि आप डाटाबेस का उपयोग करना चाहते हैं तो application/config/database.php फ़ाइल को टेक्स्ट एडीटर में खोलें और अपने डाटाबेस की सेटिंग्स भरें.

यदि आप कोड इग्नाइटर की फ़ाइलों को छुपाकर सुरक्षा बढ़ाना चाहते हैं तो आप system फ़ोल्डर का नाम बदल सकते हैं. यदि आप ऐसा करते हैं तो आपको index.php को खोलकर उसमें सबसे ऊपर $system_folder वैरिएबल का नाम बदलकर वह नाम रखना पड़ेगा.

और हो गया!

समस्या निवारण

यदि आप पाते हैं कि यूआरएल में कुछ भी लिखने पर आपका डिफ़ाल्ट पेज ही खुल रहा है तो संभव है कि आपका सर्वर PATH_INFO वैरिएबल का समर्थन नही करता है. यह वैरिएबल सर्च इंजनों के अनुकूल यूआरएल बनाने में सहायता करता है. यदि ऐसा है तो application/config/config.php फ़ाइल खोलें तथा URI Protocol को ढूंढ़ें. फ़िर उसमें कुछ सेटिंग्स को बदलकर देखें. यदि तब भी आपका काम न बन रहा हो तो आपको यूआरएल में (?) का निशान लगाने के लिए कोड इग्नाइटर पर दबाव बनाना होगा. इसके लिए application/config/config.php फ़ाइल खोलें और इसे बदलकर

$config['index_page'] = "index.php";

ऐसा कर लें:

$config['index_page'] = "index.php?";

कोड इग्नाइटर एक नजर में

कोड इग्नाइटर एक एप्लिकेशन फ़्रेमवर्क है

जो लोग पीएचपी के द्वारा वेब अनुप्रयोगों का निर्माण करते हैं उनके लिये कोड इग्नाइटर एक टूलकिट है. इसका प्रयोग करके आप तेजी से पीएचपी में अपने अनुप्रयोग बना पायेंगे. ऐसा इसलिये क्योंकि कोड इग्नाइटर रोजमर्रा में कामो को पूरा करने वाले कोड़्स का संग्रह उपलब्ध करवाता है. कोड इग्नाइटर के द्वारा आपको कम कोड लिखना पड़ता है और आप अपने प्रोजेक्ट्स में अधिक रचनात्मक रूप से ध्यान लगा पाते हैं.

कोड इग्नाइटर मुफ़्त है

कोड इग्नाइटर को Apache/BSD-style open source license के अंतर्गत लाइसेंस किया गया है ताकि आप इसे जैसे चाहें उपयोग कर सकें.

कोड इग्नाइटर पीएचपी 4 में चल सकता है

कोड इग्नाइटर को ऐसे लिखा गया है ताकि ये पीएचपी के चौथे संस्करण में भी समान रूप से चल सके. कृपया ध्यान दें: कोड इग्नाइटर पीएचपी ५ में आराम से चल सकता है. हां ये जरूर है कि यह उन सुविधाओं को उपयोग नही करेगा जो कि केवल पीएचपी ५ में उपलब्ध है

कोड इग्नाइटर हल्का है

बिल्कुल हल्का. इसका अंदरूनी प्रणाली को मात्र कुछ ही छोटी लाइब्रेरियों की जरूरत होती है. यह उन बहुत से फ़्रेमवर्कों से बिल्कुल अलग है जिन्हे अधिक संसाधनों की जरूरत होती है. अतिरिक्त लाइब्रेरियों को किसी विशेष कार्य के लिये डायनेमिक रूप से जरूरत के अनुसार लोड किया जा सकता है. इससे आधारभूत प्रणाली बहुत ही हल्की और तेज होती है.

कोड इग्नाइटर तेज है

यह वास्तव में तेज है. कोड इग्नाइटर बनाने वाले चुनौती तक देते हैं कि आप कोड इग्नाइटर से बेहतर कार्य निष्पादन करने वाला फ़्रेमवर्क ढूंढ कर दिखायें.

कोड इग्नाइटर M-V-C का प्रयोग करता है

कोड इग्नाइटर अनुप्रयोग निर्माण के लिए माडल व्यू कंट्रोलर तरीके का प्रयोग करता है, जिससे यह तार्किक कोड/प्रोग्राम और प्रस्तुतीकरण वाले हिस्सों को अलग कर पाता है. ऐसा करना विशेष तौर पर उन प्रोजेक्ट्स पर अच्छा रहता है जिनमें डिजाइनरों को टेम्प्लेट्स फ़ाइलों में काम करना पड़ता है. और इन टेम्प्लेट फ़ाइलों में कोड काफ़ी कम होता है. हम MVC के बारे में अधिक विस्तार से चर्चा आगे करेंगे.

कोड इग्नाइटर साफ़ सुथरे URLs बनाता है

जो यूआरएल कोड इग्नाइटर पैदा करता है वो साफ़ सुथरे और सर्च इंजन के लिए अनुकूल होते हैं. सामान्य क्वेरी स्ट्रिंग आधारित प्रणाली जो कि डायनेमिक साइटों के लिये पर्याय बन चुके हैं को उपयोग करने की बजाय यह खंड आधारित प्रणाली का उपयोग करता है.

example.com/news/article/345

कृपया ध्यान दें: सामान्य अवस्था में index.php फ़ाइल यूआरएल में सम्मिलित रहती है पर इसे एक साधारण .htaccess फ़ाइल के द्वारा हटाया भी जा सकता है.

कोड इग्नाइटर काफ़ी शक्तिशाली है

कोड इग्नाइटर काफ़ी सारी लाइब्रेरियों के साथ आता है जिनके प्रयोग से रोजमर्रा के कार्य करना बेहद आसान हो जाता है. जैसे डाटाबेस का प्रयोग, ईमेल भेजना, फ़ार्मों की पुष्टि करना, सेशनों को व्यवस्थित करना, चित्रों पर कार्य करना, XML-RPC के साथ कार्य करना आदि.
कोड इग्नाइटर को फ़ैलाया जा सकता है

कोड इग्नाइटर को प्लग इन्स, हेल्पर लाइब्रेरियों, क्लासों अथवा हुक्स के द्वारा विस्तारित भी किया जा सकता है.

कोड इग्नाइटर को टेम्प्लेट इंजन की जरूरत नही पड़ती है

यद्यपि कोड इग्नाइटर एक टेम्प्लेट पार्शर के साथ आता है जिसे उपयोग किया जा सकता है. परंतु कोड इग्नाइटर आपको इसका प्रयोग करने के लिए दबाव नही डालता है. टेम्प्लेट इंजन के कार्य निष्पादन मूल पीएचपी के बराबर नही होता है तथा टेम्प्लेट इंजन का वाक्यविन्यास सीखना सामान्य पीएचपी को सीखने से थोड़ा ही आसान होता है. उदाहरण के लिए निम्नलिखित कोड पर नजर डालिए:

<ul>
<?php foreach ($addressbook as $name):?>
<li><?=$name?></li>
<?php endforeach; ?>
</ul>

अब इसकी तुलना टेम्प्लेट इंजन द्वारा उपयोग किये जाने वाले स्यूडो कोड से कीजिए:

<ul>
{foreach from=$addressbook item="name"}
<li>{$name}</li>
{/foreach}
</ul>

हां, टेम्प्लेट इंजन वाला उदाहरण कुछ साफ़ सुथरा है, परंतु यह कार्यनिष्पादन की कीमत पर आता है क्योंकि इसे चलाने के लिए पहले स्यूडो कोड को पीएचपी में बदलना पड़ता है. चूंकि हमारा लक्ष्य अधिकतम कार्य निष्पादन  है अत: हमें टेम्प्लेट इंजन की जरूरत नही होगी.

कोड इग्नाइटर का गहराई से दास्तावेजीकरण किया गया है

प्रोग्रामर्स कोड करना पसंद करते हैं और दस्तावेजीकरण नापसंद. लेकिन दस्तावेजीकरण भी उतना ही महत्वपूर्ण होता है जितना कि कोड लिखना. कोड इग्नाइटर का स्रोत कोड एकदम साफ़ सुथरा है और इसमें अच्छे तरीके से टिप्पणियां भी की गई हैं.

कोड इग्नाइटर के पास उपयोगकर्ताओं का दोस्ताना समुदाय है

कोड इग्नाइटर के उपयोगकर्ताओं का समुदाय तेजी से बढ़ रहा है और आप इन्हे इसके सामुदायिक फ़ोरम में सक्रिय रूप से भाग लेते हुए देख सकते हैं.

कोड इग्नाइटर की विशेषतायें

विशेषतायें अपने आप में किसी अनुप्रयोग के बारे में कुछ तय करने का एक कमजोर तरीका है. क्योंकि ये आपको उपयोगकर्ता के अनुभव अथवा अनुप्रयोग कितनी बुद्धिमत्ता से तैयार किया गया है के बारे में कुछ नही बताती हैं.
विशेषतायें कोड की गुणवत्ता, उसकी कार्य निष्पादन की क्षमता अथवा सुरक्षा उपायों के बारे में कुछ नही कहती हैं. कोड इग्नाइटर को स्थापित करना बच्चों का खेल है अत: हम आपको ऐसा करने के लिये प्रोत्साहित करते हैं. इस बीच एक नजर कोड इग्निटर्स की मुख्य विशेषताओं पर नजर दौड़ा लीजिये.

  • Model-View-Controller Based System
  • PHP 4 Compatible
  • Extremely Light Weight
  • Full Featured database classes with support for several platforms.
  • Active Record Database Support
  • Form and Data Validation
  • Security and XSS Filtering
  • Session Management
  • Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.
  • Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM
  • File Uploading Class
  • FTP Class
  • Localization
  • Pagination
  • Data Encryption
  • Benchmarking
  • Full Page Caching
  • Error Logging
  • Application Profiling
  • Scaffolding
  • Calendaring Class
  • User Agent Class
  • Zip Encoding Class
  • Template Engine Class
  • Trackback Class
  • XML-RPC Library
  • Unit Testing Class
  • Search-engine Friendly URLs
  • Flexible URI Routing
  • Support for Hooks, Class Extensions, and Plugins
  • Large library of "helper" functions

अनुप्रयोग प्रवाह संचित्र

नीचे दिया गया रेखाचित्र पूरी कोड इग्नाइटर की प्रणाली में आंकड़ो के प्रवाह का अच्छे तरीके से वर्णन करता है.

appflowchart

  1. index.php फ़ाइल front controller के रूप में कार्य करती है. यह कोड इग्नाइटर के जरूरी आधारभूत संसाधनों को आरंभ करती है.
  2. Router, HTTP अनुरोध की जांच करता है और यह निश्चित करता है कि उसके साथ क्या करना है.
  3. यदि कैश फ़ाइल उपलब्ध होती है तो यह सामान्य प्रणाली के क्रियान्वयन को पूरा किये बिना ही सीधे ब्राउजर में भेज दी जाती है.
  4. सुरक्षा. Application Controller के लोड होने के पहले ही कोई HTTP अनुरोध या उपयोगकर्ता द्वाता जमा किये गये आंकड़े को सुरक्षा के लिये फ़िल्टर किया जाता है.
  5. Controller माडल्स, कोर लाइब्रेरियों, प्लग इन्स, हेल्पर्स तथा अन्य संसाधनों को लोड करता है जिनकी उस अनुरोध की पूर्ति करने के लिये जरूरत होती है.
  6. View को रेंडर करके तैयार किया जाता है और वेब ब्राउजर में भेज दिया जाता है. यदि कैशिंग को सक्षम किया गया है तो view को पहले view को कैश किया जाता है ताकि इसका प्रयोग बाद में आने वाले अनुरोधों में किया जा सके.

कोड इग्नाइटर में Model-View-Controller (माडल-व्यू-कंट्रोलर)

कोड इग्नाइटर माडल-व्यू-कंट्रोलर वाले विकास के ढांचे पर आधारित है. एमवीसी साफ़्टवेयर निर्माण का एक ऐसा तरीका है जो कि अनुप्रयोग के तार्किक हिस्से को प्रस्तुतीकरण वाले हिस्से से अलग करता है. इसके द्वारा आपके वेब पेजों में कम स्क्रिप्टिंग लगती है क्योंकि आपका प्रस्तुतीकरण वाला हिस्सा अलग होता है.

  • माडल आपके आंकडों के ढांचे का प्रतिनिधित्व करता है. ठेठ रूप में आपके माडल क्लासों में हमेशा ऐसे फ़ंग्शन होंगे जिनसे आप डाटाबेस से जानकारियों को निकाल, जोड़ और सुधार सकते हैं.
  • व्यू वह जानकारी होती है जिसे उपयोगकर्ता के सामने प्रस्तुत किया जाता है. व्यू सामान्यत: एक वेब पेज होता है, पर कोड इग्नाइटर में एक व्यू किसी पेज का हिस्सा भी होता है जैसे कि पेज का ऊपरी हिस्सा(हेडर) या निचला भाग(फ़ूटर). यह एक आर एस एस फ़ीड वाला पेज या अन्य कोई भी पेज हो सकता है.
  • कंट्रोलर आपके माडल, व्यू तथा अन्य संसाधनों जिनकी जरूरत किसी HTTP अनुरोध पूरा करने और वेब पेज के निर्माण में होती है, के बीच मध्यस्त के रूप में कार्य करता है.

एमवीसी के मामले में कोड इग्नाइटर का थोड़ा ढीला रवैया है क्योंकि इसमे माडलों की जरूरत नही पड़ती है. यदि आप माडलों और कंट्रोलरों को अलग अलग नही करना चाहते हैं या माडलों को संभालना अधिक जटिल हो रहा है तो आपको उनकी ओर ध्यान देने की जरूरत नही है. आप अपना अनुप्रयोग केवल कंट्रोलर और व्यू की मदत से भी बना सकते हैं. कोड इग्नाइटर आपको अपनी खुद की स्क्रिप्टों को भी फ़्रेमवर्क में सम्मिलित करने के लिये सक्षम करता है. यहां तक कि आप स्वयं कोर लाइब्रेरियों को भी विकसित कर सकते हैं.

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें

इस ब्लाग में प्रकाशित सामग्री कापीराईट द्वारा सुरक्षित है. बिना अनुमति इसका किसी भी प्रकार से अन्यत्र प्रयोग/प्रकाशन मूल रूप में/बदल कर उपयोग नही किया जा सकता है.

हिंदी में तकनीकी लेखन को प्रोत्साहित करें

please donate अभी तक वेब डेवलपमेंट अथवा प्रोग्रामिंग आदि से संबंधित जानकारी पर अंग्रेजी का एकाधिकार रहा है. भारत में इतने आई टी गुरू होने के बावजूद भारतीय भाषाओं में इस विषय पर लेखन नगण्य है. इस ब्लाग के माध्यम से मैं हिन्दी भाषिओं तक वेब डेवलपमेंट का ज्ञान पहुंचाने की कोशिश कर रहा हूं. अत: आप सभी से अनुरोध है कि हिंदी में तकनीकी लेखन के लिये सहयोग करें
मैं वेबसाइटें भी बनाता हूं. यदि आपको बनवानी हो तो बताएं.

ARCHIVES

इस ब्लॉग में खोजें

फ़ॉलोअर